/*
 * Copyright Codeplay Software Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use these files except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// DO NOT MODIFY BY HAND
// This file was automatically generated by generate_depthwise_conv2d_tests.py.
// Results calculated using Tensorflow v1.12.0.

#include <gtest/gtest.h>

#include "sycldnn/padding_mode.h"

#include "test/types/cartesian_product.h"
#include "test/types/kernel_data_types.h"
#include "test/types/test_backend_types.h"
#include "test/types/to_gtest_types.h"

#include "test/depthwise_conv2d/window_stride_fixture.h"

#include <array>
#include <vector>

using DataTypeList = sycldnn::types::KernelDataTypes;
using Backends = sycldnn::types::DefaultBackendTypes;

using SNNTypePairs =
    sycldnn::types::CartesianProduct<DataTypeList, Backends>::type;
using GTestTypePairs = sycldnn::types::ToGTestTypes<SNNTypePairs>::type;

template <typename Pair>
using FilterBackpropWindow7Stride4 =
    sycldnn::depthwise_conv2d::WindowStrideTest<Pair, 7, 4>;
TYPED_TEST_SUITE(FilterBackpropWindow7Stride4, GTestTypePairs);
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1508., 1536., 2125., 2164., 2203., 1336., 1360., 1816., 1844., 2554.,
      2593., 2632., 1600., 1624., 2151., 2184., 3021., 3066., 3111., 1884.,
      1911., 2514., 2547., 3516., 3561., 3606., 2181., 2208., 2877., 2910.,
      4011., 4056., 4101., 2478., 2505., 1096., 1112., 1474., 1495., 1516.,
      868.,  880.,  1272., 1288., 1705., 1726., 1747., 1000., 1012.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      342., 352., 362.,  372.,  382.,  392.,  402.,  452.,  462., 472.,
      482., 492., 502.,  512.,  562.,  572.,  582.,  592.,  602., 612.,
      622., 672., 682.,  692.,  702.,  712.,  722.,  732.,  782., 792.,
      802., 812., 822.,  832.,  842.,  892.,  902.,  912.,  922., 932.,
      942., 952., 1002., 1012., 1022., 1032., 1042., 1052., 1062.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2820., 3016., 2872., 3072., 3956., 4250., 4028., 4328., 4100., 4406.,
      2472., 2672., 2516., 2720., 3392., 3632., 3444., 3688., 4748., 5108.,
      4820., 5186., 4892., 5264., 2956., 3200., 3000., 3248., 4008., 4302.,
      4068., 4368., 5601., 6042., 5682., 6132., 5763., 6222., 3468., 3768.,
      3516., 3822., 4668., 5028., 4728., 5094., 6492., 7032., 6573., 7122.,
      6654., 7212., 3996., 4362., 4044., 4416., 5328., 5754., 5388., 5820.,
      7383., 8022., 7464., 8112., 7545., 8202., 4524., 4956., 4572., 5010.,
      1952., 2192., 1980., 2224., 2588., 2948., 2624., 2990., 2660., 3032.,
      1492., 1736., 1512., 1760., 2260., 2544., 2288., 2576., 2984., 3410.,
      3020., 3452., 3056., 3494., 1712., 2000., 1732., 2024.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      584.,  684.,  600.,  704.,  616.,  724.,  632.,  744.,  648.,  764.,
      664.,  784.,  680.,  804.,  760.,  904.,  776.,  924.,  792.,  944.,
      808.,  964.,  824.,  984.,  840.,  1004., 856.,  1024., 936.,  1124.,
      952.,  1144., 968.,  1164., 984.,  1184., 1000., 1204., 1016., 1224.,
      1032., 1244., 1112., 1344., 1128., 1364., 1144., 1384., 1160., 1404.,
      1176., 1424., 1192., 1444., 1208., 1464., 1288., 1564., 1304., 1584.,
      1320., 1604., 1336., 1624., 1352., 1644., 1368., 1664., 1384., 1684.,
      1464., 1784., 1480., 1804., 1496., 1824., 1512., 1844., 1528., 1864.,
      1544., 1884., 1560., 1904., 1640., 2004., 1656., 2024., 1672., 2044.,
      1688., 2064., 1704., 2084., 1720., 2104., 1736., 2124.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5444.,  5640.,  5836.,  6032.,  5544.,  5744.,  5944.,  6144.,  7618.,
      7912.,  8206.,  8500.,  7756.,  8056.,  8356.,  8656.,  7894.,  8200.,
      8506.,  8812.,  4744.,  4944.,  5144.,  5344.,  4828.,  5032.,  5236.,
      5440.,  6544.,  6784.,  7024.,  7264.,  6644.,  6888.,  7132.,  7376.,
      9136.,  9496.,  9856.,  10216., 9274.,  9640.,  10006., 10372., 9412.,
      9784.,  10156., 10528., 5668.,  5912.,  6156.,  6400.,  5752.,  6000.,
      6248.,  6496.,  7722.,  8016.,  8310.,  8604.,  7836.,  8136.,  8436.,
      8736.,  10761., 11202., 11643., 12084., 10914., 11364., 11814., 12264.,
      11067., 11526., 11985., 12444., 6636.,  6936.,  7236.,  7536.,  6726.,
      7032.,  7338.,  7644.,  8976.,  9336.,  9696.,  10056., 9090.,  9456.,
      9822.,  10188., 12444., 12984., 13524., 14064., 12597., 13146., 13695.,
      14244., 12750., 13308., 13866., 14424., 7626.,  7992.,  8358.,  8724.,
      7716.,  8088.,  8460.,  8832.,  10230., 10656., 11082., 11508., 10344.,
      10776., 11208., 11640., 14127., 14766., 15405., 16044., 14280., 14928.,
      15576., 16224., 14433., 15090., 15747., 16404., 8616.,  9048.,  9480.,
      9912.,  8706.,  9144.,  9582.,  10020., 3664.,  3904.,  4144.,  4384.,
      3716.,  3960.,  4204.,  4448.,  4816.,  5176.,  5536.,  5896.,  4882.,
      5248.,  5614.,  5980.,  4948.,  5320.,  5692.,  6064.,  2740.,  2984.,
      3228.,  3472.,  2776.,  3024.,  3272.,  3520.,  4236.,  4520.,  4804.,
      5088.,  4288.,  4576.,  4864.,  5152.,  5542.,  5968.,  6394.,  6820.,
      5608.,  6040.,  6472.,  6904.,  5674.,  6112.,  6550.,  6988.,  3136.,
      3424.,  3712.,  4000.,  3172.,  3464.,  3756.,  4048.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1068., 1168., 1268., 1368., 1096., 1200., 1304., 1408., 1124., 1232.,
      1340., 1448., 1152., 1264., 1376., 1488., 1180., 1296., 1412., 1528.,
      1208., 1328., 1448., 1568., 1236., 1360., 1484., 1608., 1376., 1520.,
      1664., 1808., 1404., 1552., 1700., 1848., 1432., 1584., 1736., 1888.,
      1460., 1616., 1772., 1928., 1488., 1648., 1808., 1968., 1516., 1680.,
      1844., 2008., 1544., 1712., 1880., 2048., 1684., 1872., 2060., 2248.,
      1712., 1904., 2096., 2288., 1740., 1936., 2132., 2328., 1768., 1968.,
      2168., 2368., 1796., 2000., 2204., 2408., 1824., 2032., 2240., 2448.,
      1852., 2064., 2276., 2488., 1992., 2224., 2456., 2688., 2020., 2256.,
      2492., 2728., 2048., 2288., 2528., 2768., 2076., 2320., 2564., 2808.,
      2104., 2352., 2600., 2848., 2132., 2384., 2636., 2888., 2160., 2416.,
      2672., 2928., 2300., 2576., 2852., 3128., 2328., 2608., 2888., 3168.,
      2356., 2640., 2924., 3208., 2384., 2672., 2960., 3248., 2412., 2704.,
      2996., 3288., 2440., 2736., 3032., 3328., 2468., 2768., 3068., 3368.,
      2608., 2928., 3248., 3568., 2636., 2960., 3284., 3608., 2664., 2992.,
      3320., 3648., 2692., 3024., 3356., 3688., 2720., 3056., 3392., 3728.,
      2748., 3088., 3428., 3768., 2776., 3120., 3464., 3808., 2916., 3280.,
      3644., 4008., 2944., 3312., 3680., 4048., 2972., 3344., 3716., 4088.,
      3000., 3376., 3752., 4128., 3028., 3408., 3788., 4168., 3056., 3440.,
      3824., 4208., 3084., 3472., 3860., 4248.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5588.,  6032.,  5692.,  6144.,  7840.,  8500.,  7984.,  8656.,  8128.,
      8812.,  4900.,  5344.,  4988.,  5440.,  6732.,  7264.,  6836.,  7376.,
      9424.,  10216., 9568.,  10372., 9712.,  10528., 5868.,  6400.,  5956.,
      6496.,  7956.,  8604.,  8076.,  8736.,  11121., 12084., 11283., 12264.,
      11445., 12444., 6888.,  7536.,  6984.,  7644.,  9276.,  10056., 9396.,
      10188., 12903., 14064., 13065., 14244., 13227., 14424., 7944.,  8724.,
      8040.,  8832.,  10596., 11508., 10716., 11640., 14685., 16044., 14847.,
      16224., 15009., 16404., 9000.,  9912.,  9096.,  10020., 3876.,  4384.,
      3932.,  4448.,  5140.,  5896.,  5212.,  5980.,  5284.,  6064.,  2964.,
      3472.,  3004.,  3520.,  4492.,  5088.,  4548.,  5152.,  5932.,  6820.,
      6004.,  6904.,  6076.,  6988.,  3404.,  4000.,  3444.,  4048.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1152., 1368., 1184., 1408., 1216., 1448., 1248., 1488., 1280., 1528.,
      1312., 1568., 1344., 1608., 1504., 1808., 1536., 1848., 1568., 1888.,
      1600., 1928., 1632., 1968., 1664., 2008., 1696., 2048., 1856., 2248.,
      1888., 2288., 1920., 2328., 1952., 2368., 1984., 2408., 2016., 2448.,
      2048., 2488., 2208., 2688., 2240., 2728., 2272., 2768., 2304., 2808.,
      2336., 2848., 2368., 2888., 2400., 2928., 2560., 3128., 2592., 3168.,
      2624., 3208., 2656., 3248., 2688., 3288., 2720., 3328., 2752., 3368.,
      2912., 3568., 2944., 3608., 2976., 3648., 3008., 3688., 3040., 3728.,
      3072., 3768., 3104., 3808., 3264., 4008., 3296., 4048., 3328., 4088.,
      3360., 4128., 3392., 4168., 3424., 4208., 3456., 4248.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10788., 11176., 11672., 12064., 10988., 11384., 11888., 12288., 15098.,
      15680., 16412., 17000., 15374., 15968., 16712., 17312., 15650., 16256.,
      17012., 17624., 9404.,  9800.,  10288., 10688., 9572.,  9976.,  10472.,
      10880., 12988., 13464., 14048., 14528., 13188., 13672., 14264., 14752.,
      18134., 18848., 19712., 20432., 18410., 19136., 20012., 20744., 18686.,
      19424., 20312., 21056., 11252., 11736., 12312., 12800., 11420., 11912.,
      12496., 12992., 15330., 15912., 16620., 17208., 15558., 16152., 16872.,
      17472., 21369., 22242., 23286., 24168., 21675., 22566., 23628., 24528.,
      21981., 22890., 23970., 24888., 13182., 13776., 14472., 15072., 13362.,
      13968., 14676., 15288., 17838., 18552., 19392., 20112., 18066., 18792.,
      19644., 20376., 24735., 25806., 27048., 28128., 25041., 26130., 27390.,
      28488., 25347., 26454., 27732., 28848., 15162., 15888., 16716., 17448.,
      15342., 16080., 16920., 17664., 20346., 21192., 22164., 23016., 20574.,
      21432., 22416., 23280., 28101., 29370., 30810., 32088., 28407., 29694.,
      31152., 32448., 28713., 30018., 31494., 32808., 17142., 18000., 18960.,
      19824., 17322., 18192., 19164., 20040., 7276.,  7752.,  8288.,  8768.,
      7380.,  7864.,  8408.,  8896.,  9566.,  10280., 11072., 11792., 9698.,
      10424., 11228., 11960., 9830.,  10568., 11384., 12128., 5444.,  5928.,
      6456.,  6944.,  5516.,  6008.,  6544.,  7040.,  8420.,  8984.,  9608.,
      10176., 8524.,  9096.,  9728.,  10304., 11018., 11864., 12788., 13640.,
      11150., 12008., 12944., 13808., 11282., 12152., 13100., 13976., 6236.,
      6808.,  7424.,  8000.,  6308.,  6888.,  7512.,  8096.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2108., 2304., 2536., 2736., 2164., 2368., 2608., 2816., 2220., 2432.,
      2680., 2896., 2276., 2496., 2752., 2976., 2332., 2560., 2824., 3056.,
      2388., 2624., 2896., 3136., 2444., 2688., 2968., 3216., 2724., 3008.,
      3328., 3616., 2780., 3072., 3400., 3696., 2836., 3136., 3472., 3776.,
      2892., 3200., 3544., 3856., 2948., 3264., 3616., 3936., 3004., 3328.,
      3688., 4016., 3060., 3392., 3760., 4096., 3340., 3712., 4120., 4496.,
      3396., 3776., 4192., 4576., 3452., 3840., 4264., 4656., 3508., 3904.,
      4336., 4736., 3564., 3968., 4408., 4816., 3620., 4032., 4480., 4896.,
      3676., 4096., 4552., 4976., 3956., 4416., 4912., 5376., 4012., 4480.,
      4984., 5456., 4068., 4544., 5056., 5536., 4124., 4608., 5128., 5616.,
      4180., 4672., 5200., 5696., 4236., 4736., 5272., 5776., 4292., 4800.,
      5344., 5856., 4572., 5120., 5704., 6256., 4628., 5184., 5776., 6336.,
      4684., 5248., 5848., 6416., 4740., 5312., 5920., 6496., 4796., 5376.,
      5992., 6576., 4852., 5440., 6064., 6656., 4908., 5504., 6136., 6736.,
      5188., 5824., 6496., 7136., 5244., 5888., 6568., 7216., 5300., 5952.,
      6640., 7296., 5356., 6016., 6712., 7376., 5412., 6080., 6784., 7456.,
      5468., 6144., 6856., 7536., 5524., 6208., 6928., 7616., 5804., 6528.,
      7288., 8016., 5860., 6592., 7360., 8096., 5916., 6656., 7432., 8176.,
      5972., 6720., 7504., 8256., 6028., 6784., 7576., 8336., 6084., 6848.,
      7648., 8416., 6140., 6912., 7720., 8496.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21188., 21576., 21964., 22352., 22952., 23344., 23736., 24128., 21580.,
      21976., 22372., 22768., 23376., 23776., 24176., 24576., 29614., 30196.,
      30778., 31360., 32236., 32824., 33412., 34000., 30154., 30748., 31342.,
      31936., 32824., 33424., 34024., 34624., 30694., 31300., 31906., 32512.,
      33412., 34024., 34636., 35248., 18412., 18808., 19204., 19600., 20176.,
      20576., 20976., 21376., 18740., 19144., 19548., 19952., 20536., 20944.,
      21352., 21760., 25500., 25976., 26452., 26928., 27616., 28096., 28576.,
      29056., 25892., 26376., 26860., 27344., 28040., 28528., 29016., 29504.,
      35554., 36268., 36982., 37696., 38704., 39424., 40144., 40864., 36094.,
      36820., 37546., 38272., 39292., 40024., 40756., 41488., 36634., 37372.,
      38110., 38848., 39880., 40624., 41368., 42112., 22020., 22504., 22988.,
      23472., 24136., 24624., 25112., 25600., 22348., 22840., 23332., 23824.,
      24496., 24992., 25488., 25984., 30078., 30660., 31242., 31824., 32652.,
      33240., 33828., 34416., 30522., 31116., 31710., 32304., 33144., 33744.,
      34344., 34944., 41865., 42738., 43611., 44484., 45690., 46572., 47454.,
      48336., 42459., 43350., 44241., 45132., 46356., 47256., 48156., 49056.,
      43053., 43962., 44871., 45780., 47022., 47940., 48858., 49776., 25770.,
      26364., 26958., 27552., 28344., 28944., 29544., 30144., 26118., 26724.,
      27330., 27936., 28740., 29352., 29964., 30576., 34962., 35676., 36390.,
      37104., 38064., 38784., 39504., 40224., 35406., 36132., 36858., 37584.,
      38556., 39288., 40020., 40752., 48399., 49470., 50541., 51612., 53016.,
      54096., 55176., 56256., 48993., 50082., 51171., 52260., 53682., 54780.,
      55878., 56976., 49587., 50694., 51801., 52908., 54348., 55464., 56580.,
      57696., 29598., 30324., 31050., 31776., 32700., 33432., 34164., 34896.,
      29946., 30684., 31422., 32160., 33096., 33840., 34584., 35328., 39846.,
      40692., 41538., 42384., 43476., 44328., 45180., 46032., 40290., 41148.,
      42006., 42864., 43968., 44832., 45696., 46560., 54933., 56202., 57471.,
      58740., 60342., 61620., 62898., 64176., 55527., 56814., 58101., 59388.,
      61008., 62304., 63600., 64896., 56121., 57426., 58731., 60036., 61674.,
      62988., 64302., 65616., 33426., 34284., 35142., 36000., 37056., 37920.,
      38784., 39648., 33774., 34644., 35514., 36384., 37452., 38328., 39204.,
      40080., 14076., 14552., 15028., 15504., 16096., 16576., 17056., 17536.,
      14276., 14760., 15244., 15728., 16328., 16816., 17304., 17792., 18418.,
      19132., 19846., 20560., 21424., 22144., 22864., 23584., 18670., 19396.,
      20122., 20848., 21724., 22456., 23188., 23920., 18922., 19660., 20398.,
      21136., 22024., 22768., 23512., 24256., 10404., 10888., 11372., 11856.,
      12424., 12912., 13400., 13888., 10540., 11032., 11524., 12016., 12592.,
      13088., 13584., 14080., 16276., 16840., 17404., 17968., 18648., 19216.,
      19784., 20352., 16476., 17048., 17620., 18192., 18880., 19456., 20032.,
      20608., 21190., 22036., 22882., 23728., 24724., 25576., 26428., 27280.,
      21442., 22300., 23158., 24016., 25024., 25888., 26752., 27616., 21694.,
      22564., 23434., 24304., 25324., 26200., 27076., 27952., 11900., 12472.,
      13044., 13616., 14272., 14848., 15424., 16000., 12036., 12616., 13196.,
      13776., 14440., 15024., 15608., 16192.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4020.,  4216.,  4412.,  4608.,  4872.,  5072.,  5272.,  5472.,  4124.,
      4328.,  4532.,  4736.,  5008.,  5216.,  5424.,  5632.,  4228.,  4440.,
      4652.,  4864.,  5144.,  5360.,  5576.,  5792.,  4332.,  4552.,  4772.,
      4992.,  5280.,  5504.,  5728.,  5952.,  4436.,  4664.,  4892.,  5120.,
      5416.,  5648.,  5880.,  6112.,  4540.,  4776.,  5012.,  5248.,  5552.,
      5792.,  6032.,  6272.,  4644.,  4888.,  5132.,  5376.,  5688.,  5936.,
      6184.,  6432.,  5164.,  5448.,  5732.,  6016.,  6368.,  6656.,  6944.,
      7232.,  5268.,  5560.,  5852.,  6144.,  6504.,  6800.,  7096.,  7392.,
      5372.,  5672.,  5972.,  6272.,  6640.,  6944.,  7248.,  7552.,  5476.,
      5784.,  6092.,  6400.,  6776.,  7088.,  7400.,  7712.,  5580.,  5896.,
      6212.,  6528.,  6912.,  7232.,  7552.,  7872.,  5684.,  6008.,  6332.,
      6656.,  7048.,  7376.,  7704.,  8032.,  5788.,  6120.,  6452.,  6784.,
      7184.,  7520.,  7856.,  8192.,  6308.,  6680.,  7052.,  7424.,  7864.,
      8240.,  8616.,  8992.,  6412.,  6792.,  7172.,  7552.,  8000.,  8384.,
      8768.,  9152.,  6516.,  6904.,  7292.,  7680.,  8136.,  8528.,  8920.,
      9312.,  6620.,  7016.,  7412.,  7808.,  8272.,  8672.,  9072.,  9472.,
      6724.,  7128.,  7532.,  7936.,  8408.,  8816.,  9224.,  9632.,  6828.,
      7240.,  7652.,  8064.,  8544.,  8960.,  9376.,  9792.,  6932.,  7352.,
      7772.,  8192.,  8680.,  9104.,  9528.,  9952.,  7452.,  7912.,  8372.,
      8832.,  9360.,  9824.,  10288., 10752., 7556.,  8024.,  8492.,  8960.,
      9496.,  9968.,  10440., 10912., 7660.,  8136.,  8612.,  9088.,  9632.,
      10112., 10592., 11072., 7764.,  8248.,  8732.,  9216.,  9768.,  10256.,
      10744., 11232., 7868.,  8360.,  8852.,  9344.,  9904.,  10400., 10896.,
      11392., 7972.,  8472.,  8972.,  9472.,  10040., 10544., 11048., 11552.,
      8076.,  8584.,  9092.,  9600.,  10176., 10688., 11200., 11712., 8596.,
      9144.,  9692.,  10240., 10856., 11408., 11960., 12512., 8700.,  9256.,
      9812.,  10368., 10992., 11552., 12112., 12672., 8804.,  9368.,  9932.,
      10496., 11128., 11696., 12264., 12832., 8908.,  9480.,  10052., 10624.,
      11264., 11840., 12416., 12992., 9012.,  9592.,  10172., 10752., 11400.,
      11984., 12568., 13152., 9116.,  9704.,  10292., 10880., 11536., 12128.,
      12720., 13312., 9220.,  9816.,  10412., 11008., 11672., 12272., 12872.,
      13472., 9740.,  10376., 11012., 11648., 12352., 12992., 13632., 14272.,
      9844.,  10488., 11132., 11776., 12488., 13136., 13784., 14432., 9948.,
      10600., 11252., 11904., 12624., 13280., 13936., 14592., 10052., 10712.,
      11372., 12032., 12760., 13424., 14088., 14752., 10156., 10824., 11492.,
      12160., 12896., 13568., 14240., 14912., 10260., 10936., 11612., 12288.,
      13032., 13712., 14392., 15072., 10364., 11048., 11732., 12416., 13168.,
      13856., 14544., 15232., 10884., 11608., 12332., 13056., 13848., 14576.,
      15304., 16032., 10988., 11720., 12452., 13184., 13984., 14720., 15456.,
      16192., 11092., 11832., 12572., 13312., 14120., 14864., 15608., 16352.,
      11196., 11944., 12692., 13440., 14256., 15008., 15760., 16512., 11300.,
      12056., 12812., 13568., 14392., 15152., 15912., 16672., 11404., 12168.,
      12932., 13696., 14528., 15296., 16064., 16832., 11508., 12280., 13052.,
      13824., 14664., 15440., 16216., 16992.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21476., 22352., 23236., 24128., 21876., 22768., 23668., 24576., 30058.,
      31360., 32674., 34000., 30610., 31936., 33274., 34624., 31162., 32512.,
      33874., 35248., 18724., 19600., 20484., 21376., 19060., 19952., 20852.,
      21760., 25876., 26928., 27988., 29056., 26276., 27344., 28420., 29504.,
      36130., 37696., 39274., 40864., 36682., 38272., 39874., 41488., 37234.,
      38848., 40474., 42112., 22420., 23472., 24532., 25600., 22756., 23824.,
      24900., 25984., 30546., 31824., 33114., 34416., 31002., 32304., 33618.,
      34944., 42585., 44484., 46401., 48336., 43197., 45132., 47085., 49056.,
      43809., 45780., 47769., 49776., 26274., 27552., 28842., 30144., 26634.,
      27936., 29250., 30576., 35562., 37104., 38658., 40224., 36018., 37584.,
      39162., 40752., 49317., 51612., 53925., 56256., 49929., 52260., 54609.,
      56976., 50541., 52908., 55293., 57696., 30234., 31776., 33330., 34896.,
      30594., 32160., 33738., 35328., 40578., 42384., 44202., 46032., 41034.,
      42864., 44706., 46560., 56049., 58740., 61449., 64176., 56661., 59388.,
      62133., 64896., 57273., 60036., 62817., 65616., 34194., 36000., 37818.,
      39648., 34554., 36384., 38226., 40080., 14500., 15504., 16516., 17536.,
      14708., 15728., 16756., 17792., 19066., 20560., 22066., 23584., 19330.,
      20848., 22378., 23920., 19594., 21136., 22690., 24256., 10852., 11856.,
      12868., 13888., 10996., 12016., 13044., 14080., 16788., 17968., 19156.,
      20352., 16996., 18192., 19396., 20608., 21970., 23728., 25498., 27280.,
      22234., 24016., 25810., 27616., 22498., 24304., 26122., 27952., 12436.,
      13616., 14804., 16000., 12580., 13776., 14980., 16192.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4188.,  4608.,  5036.,  5472.,  4300.,  4736.,  5180.,  5632.,  4412.,
      4864.,  5324.,  5792.,  4524.,  4992.,  5468.,  5952.,  4636.,  5120.,
      5612.,  6112.,  4748.,  5248.,  5756.,  6272.,  4860.,  5376.,  5900.,
      6432.,  5420.,  6016.,  6620.,  7232.,  5532.,  6144.,  6764.,  7392.,
      5644.,  6272.,  6908.,  7552.,  5756.,  6400.,  7052.,  7712.,  5868.,
      6528.,  7196.,  7872.,  5980.,  6656.,  7340.,  8032.,  6092.,  6784.,
      7484.,  8192.,  6652.,  7424.,  8204.,  8992.,  6764.,  7552.,  8348.,
      9152.,  6876.,  7680.,  8492.,  9312.,  6988.,  7808.,  8636.,  9472.,
      7100.,  7936.,  8780.,  9632.,  7212.,  8064.,  8924.,  9792.,  7324.,
      8192.,  9068.,  9952.,  7884.,  8832.,  9788.,  10752., 7996.,  8960.,
      9932.,  10912., 8108.,  9088.,  10076., 11072., 8220.,  9216.,  10220.,
      11232., 8332.,  9344.,  10364., 11392., 8444.,  9472.,  10508., 11552.,
      8556.,  9600.,  10652., 11712., 9116.,  10240., 11372., 12512., 9228.,
      10368., 11516., 12672., 9340.,  10496., 11660., 12832., 9452.,  10624.,
      11804., 12992., 9564.,  10752., 11948., 13152., 9676.,  10880., 12092.,
      13312., 9788.,  11008., 12236., 13472., 10348., 11648., 12956., 14272.,
      10460., 11776., 13100., 14432., 10572., 11904., 13244., 14592., 10684.,
      12032., 13388., 14752., 10796., 12160., 13532., 14912., 10908., 12288.,
      13676., 15072., 11020., 12416., 13820., 15232., 11580., 13056., 14540.,
      16032., 11692., 13184., 14684., 16192., 11804., 13312., 14828., 16352.,
      11916., 13440., 14972., 16512., 12028., 13568., 15116., 16672., 12140.,
      13696., 15260., 16832., 12252., 13824., 15404., 16992.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      42180.,  42952.,  43928.,  44704.,  45692.,  46472.,  47472.,  48256.,
      42964.,  43752.,  44744.,  45536.,  46540.,  47336.,  48352.,  49152.,
      58958.,  60116.,  61556.,  62720.,  64178.,  65348.,  66824.,  68000.,
      60038.,  61220.,  62684.,  63872.,  65354.,  66548.,  68048.,  69248.,
      61118.,  62324.,  63812.,  65024.,  66530.,  67748.,  69272.,  70496.,
      36660.,  37448.,  38408.,  39200.,  40172.,  40968.,  41952.,  42752.,
      37316.,  38120.,  39096.,  39904.,  40892.,  41704.,  42704.,  43520.,
      50804.,  51752.,  52904.,  53856.,  55020.,  55976.,  57152.,  58112.,
      51588.,  52552.,  53720.,  54688.,  55868.,  56840.,  58032.,  59008.,
      70838.,  72260.,  73964.,  75392.,  77114.,  78548.,  80288.,  81728.,
      71918.,  73364.,  75092.,  76544.,  78290.,  79748.,  81512.,  82976.,
      72998.,  74468.,  76220.,  77696.,  79466.,  80948.,  82736.,  84224.,
      43876.,  44840.,  45976.,  46944.,  48092.,  49064.,  50224.,  51200.,
      44532.,  45512.,  46664.,  47648.,  48812.,  49800.,  50976.,  51968.,
      59934.,  61092.,  62484.,  63648.,  65058.,  66228.,  67656.,  68832.,
      60822.,  62004.,  63420.,  64608.,  66042.,  67236.,  68688.,  69888.,
      83433.,  85170.,  87222.,  88968.,  91047.,  92802.,  94908.,  96672.,
      84621.,  86394.,  88482.,  90264.,  92379.,  94170.,  96312.,  98112.,
      85809.,  87618.,  89742.,  91560.,  93711.,  95538.,  97716.,  99552.,
      51366.,  52548.,  53916.,  55104.,  56490.,  57684.,  59088.,  60288.,
      52062.,  53268.,  54660.,  55872.,  57282.,  58500.,  59928.,  61152.,
      69702.,  71124.,  72780.,  74208.,  75882.,  77316.,  79008.,  80448.,
      70590.,  72036.,  73716.,  75168.,  76866.,  78324.,  80040.,  81504.,
      96501.,  98634.,  101082., 103224., 105699., 107850., 110352., 112512.,
      97689.,  99858.,  102342., 104520., 107031., 109218., 111756., 113952.,
      98877.,  101082., 103602., 105816., 108363., 110586., 113160., 115392.,
      59022.,  60468.,  62100.,  63552.,  65202.,  66660.,  68328.,  69792.,
      59718.,  61188.,  62844.,  64320.,  65994.,  67476.,  69168.,  70656.,
      79470.,  81156.,  83076.,  84768.,  86706.,  88404.,  90360.,  92064.,
      80358.,  82068.,  84012.,  85728.,  87690.,  89412.,  91392.,  93120.,
      109569., 112098., 114942., 117480., 120351., 122898., 125796., 128352.,
      110757., 113322., 116202., 118776., 121683., 124266., 127200., 129792.,
      111945., 114546., 117462., 120072., 123015., 125634., 128604., 131232.,
      66678.,  68388.,  70284.,  72000.,  73914.,  75636.,  77568.,  79296.,
      67374.,  69108.,  71028.,  72768.,  74706.,  76452.,  78408.,  80160.,
      28052.,  29000.,  30056.,  31008.,  32076.,  33032.,  34112.,  35072.,
      28452.,  29416.,  30488.,  31456.,  32540.,  33512.,  34608.,  35584.,
      36710.,  38132.,  39692.,  41120.,  42698.,  44132.,  45728.,  47168.,
      37214.,  38660.,  40244.,  41696.,  43298.,  44756.,  46376.,  47840.,
      37718.,  39188.,  40796.,  42272.,  43898.,  45380.,  47024.,  48512.,
      20740.,  21704.,  22744.,  23712.,  24764.,  25736.,  26800.,  27776.,
      21012.,  21992.,  23048.,  24032.,  25100.,  26088.,  27168.,  28160.,
      32452.,  33576.,  34808.,  35936.,  37180.,  38312.,  39568.,  40704.,
      32852.,  33992.,  35240.,  36384.,  37644.,  38792.,  40064.,  41216.,
      42254.,  43940.,  45764.,  47456.,  49298.,  50996.,  52856.,  54560.,
      42758.,  44468.,  46316.,  48032.,  49898.,  51620.,  53504.,  55232.,
      43262.,  44996.,  46868.,  48608.,  50498.,  52244.,  54152.,  55904.,
      23732.,  24872.,  26088.,  27232.,  28460.,  29608.,  30848.,  32000.,
      24004.,  25160.,  26392.,  27552.,  28796.,  29960.,  31216.,  32384.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7988.,  8376.,  8824.,  9216.,  9676.,  10072., 10544., 10944., 8196.,
      8600.,  9064.,  9472.,  9948.,  10360., 10848., 11264., 8404.,  8824.,
      9304.,  9728.,  10220., 10648., 11152., 11584., 8612.,  9048.,  9544.,
      9984.,  10492., 10936., 11456., 11904., 8820.,  9272.,  9784.,  10240.,
      10764., 11224., 11760., 12224., 9028.,  9496.,  10024., 10496., 11036.,
      11512., 12064., 12544., 9236.,  9720.,  10264., 10752., 11308., 11800.,
      12368., 12864., 10276., 10840., 11464., 12032., 12668., 13240., 13888.,
      14464., 10484., 11064., 11704., 12288., 12940., 13528., 14192., 14784.,
      10692., 11288., 11944., 12544., 13212., 13816., 14496., 15104., 10900.,
      11512., 12184., 12800., 13484., 14104., 14800., 15424., 11108., 11736.,
      12424., 13056., 13756., 14392., 15104., 15744., 11316., 11960., 12664.,
      13312., 14028., 14680., 15408., 16064., 11524., 12184., 12904., 13568.,
      14300., 14968., 15712., 16384., 12564., 13304., 14104., 14848., 15660.,
      16408., 17232., 17984., 12772., 13528., 14344., 15104., 15932., 16696.,
      17536., 18304., 12980., 13752., 14584., 15360., 16204., 16984., 17840.,
      18624., 13188., 13976., 14824., 15616., 16476., 17272., 18144., 18944.,
      13396., 14200., 15064., 15872., 16748., 17560., 18448., 19264., 13604.,
      14424., 15304., 16128., 17020., 17848., 18752., 19584., 13812., 14648.,
      15544., 16384., 17292., 18136., 19056., 19904., 14852., 15768., 16744.,
      17664., 18652., 19576., 20576., 21504., 15060., 15992., 16984., 17920.,
      18924., 19864., 20880., 21824., 15268., 16216., 17224., 18176., 19196.,
      20152., 21184., 22144., 15476., 16440., 17464., 18432., 19468., 20440.,
      21488., 22464., 15684., 16664., 17704., 18688., 19740., 20728., 21792.,
      22784., 15892., 16888., 17944., 18944., 20012., 21016., 22096., 23104.,
      16100., 17112., 18184., 19200., 20284., 21304., 22400., 23424., 17140.,
      18232., 19384., 20480., 21644., 22744., 23920., 25024., 17348., 18456.,
      19624., 20736., 21916., 23032., 24224., 25344., 17556., 18680., 19864.,
      20992., 22188., 23320., 24528., 25664., 17764., 18904., 20104., 21248.,
      22460., 23608., 24832., 25984., 17972., 19128., 20344., 21504., 22732.,
      23896., 25136., 26304., 18180., 19352., 20584., 21760., 23004., 24184.,
      25440., 26624., 18388., 19576., 20824., 22016., 23276., 24472., 25744.,
      26944., 19428., 20696., 22024., 23296., 24636., 25912., 27264., 28544.,
      19636., 20920., 22264., 23552., 24908., 26200., 27568., 28864., 19844.,
      21144., 22504., 23808., 25180., 26488., 27872., 29184., 20052., 21368.,
      22744., 24064., 25452., 26776., 28176., 29504., 20260., 21592., 22984.,
      24320., 25724., 27064., 28480., 29824., 20468., 21816., 23224., 24576.,
      25996., 27352., 28784., 30144., 20676., 22040., 23464., 24832., 26268.,
      27640., 29088., 30464., 21716., 23160., 24664., 26112., 27628., 29080.,
      30608., 32064., 21924., 23384., 24904., 26368., 27900., 29368., 30912.,
      32384., 22132., 23608., 25144., 26624., 28172., 29656., 31216., 32704.,
      22340., 23832., 25384., 26880., 28444., 29944., 31520., 33024., 22548.,
      24056., 25624., 27136., 28716., 30232., 31824., 33344., 22756., 24280.,
      25864., 27392., 28988., 30520., 32128., 33664., 22964., 24504., 26104.,
      27648., 29260., 30808., 32432., 33984.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      83588.,  84360.,  85132.,  85904.,  87080.,  87856.,  88632.,  89408.,
      90604.,  91384.,  92164.,  92944.,  94160.,  94944.,  95728.,  96512.,
      85140.,  85928.,  86716.,  87504.,  88696.,  89488.,  90280.,  91072.,
      92284.,  93080.,  93876.,  94672.,  95904.,  96704.,  97504.,  98304.,
      116758., 117916., 119074., 120232., 121948., 123112., 124276., 125440.,
      127186., 128356., 129526., 130696., 132472., 133648., 134824., 136000.,
      118894., 120076., 121258., 122440., 124180., 125368., 126556., 127744.,
      129514., 130708., 131902., 133096., 134896., 136096., 137296., 138496.,
      121030., 122236., 123442., 124648., 126412., 127624., 128836., 130048.,
      131842., 133060., 134278., 135496., 137320., 138544., 139768., 140992.,
      72532.,  73320.,  74108.,  74896.,  76024.,  76816.,  77608.,  78400.,
      79548.,  80344.,  81140.,  81936.,  83104.,  83904.,  84704.,  85504.,
      73828.,  74632.,  75436.,  76240.,  77384.,  78192.,  79000.,  79808.,
      80972.,  81784.,  82596.,  83408.,  84592.,  85408.,  86224.,  87040.,
      100660., 101608., 102556., 103504., 104856., 105808., 106760., 107712.,
      109084., 110040., 110996., 111952., 113344., 114304., 115264., 116224.,
      102212., 103176., 104140., 105104., 106472., 107440., 108408., 109376.,
      110764., 111736., 112708., 113680., 115088., 116064., 117040., 118016.,
      140254., 141676., 143098., 144520., 146500., 147928., 149356., 150784.,
      152794., 154228., 155662., 157096., 159136., 160576., 162016., 163456.,
      142390., 143836., 145282., 146728., 148732., 150184., 151636., 153088.,
      155122., 156580., 158038., 159496., 161560., 163024., 164488., 165952.,
      144526., 145996., 147466., 148936., 150964., 152440., 153916., 155392.,
      157450., 158932., 160414., 161896., 163984., 165472., 166960., 168448.,
      86788.,  87752.,  88716.,  89680.,  90984.,  91952.,  92920.,  93888.,
      95212.,  96184.,  97156.,  98128.,  99472.,  100448., 101424., 102400.,
      88084.,  89064.,  90044.,  91024.,  92344.,  93328.,  94312.,  95296.,
      96636.,  97624.,  98612.,  99600.,  100960., 101952., 102944., 103936.,
      118710., 119868., 121026., 122184., 123804., 124968., 126132., 127296.,
      128946., 130116., 131286., 132456., 134136., 135312., 136488., 137664.,
      120462., 121644., 122826., 124008., 125652., 126840., 128028., 129216.,
      130890., 132084., 133278., 134472., 136176., 137376., 138576., 139776.,
      165129., 166866., 168603., 170340., 172698., 174444., 176190., 177936.,
      180339., 182094., 183849., 185604., 188052., 189816., 191580., 193344.,
      167469., 169242., 171015., 172788., 175182., 176964., 178746., 180528.,
      182967., 184758., 186549., 188340., 190824., 192624., 194424., 196224.,
      169809., 171618., 173427., 175236., 177666., 179484., 181302., 183120.,
      185595., 187422., 189249., 191076., 193596., 195432., 197268., 199104.,
      101550., 102732., 103914., 105096., 106644., 107832., 109020., 110208.,
      111786., 112980., 114174., 115368., 116976., 118176., 119376., 120576.,
      102918., 104124., 105330., 106536., 108108., 109320., 110532., 111744.,
      113346., 114564., 115782., 117000., 118632., 119856., 121080., 122304.,
      137982., 139404., 140826., 142248., 144132., 145560., 146988., 148416.,
      150330., 151764., 153198., 154632., 156576., 158016., 159456., 160896.,
      139734., 141180., 142626., 144072., 145980., 147432., 148884., 150336.,
      152274., 153732., 155190., 156648., 158616., 160080., 161544., 163008.,
      190869., 193002., 195135., 197268., 200022., 202164., 204306., 206448.,
      209247., 211398., 213549., 215700., 218544., 220704., 222864., 225024.,
      193209., 195378., 197547., 199716., 202506., 204684., 206862., 209040.,
      211875., 214062., 216249., 218436., 221316., 223512., 225708., 227904.,
      195549., 197754., 199959., 202164., 204990., 207204., 209418., 211632.,
      214503., 216726., 218949., 221172., 224088., 226320., 228552., 230784.,
      116598., 118044., 119490., 120936., 122748., 124200., 125652., 127104.,
      128946., 130404., 131862., 133320., 135192., 136656., 138120., 139584.,
      117966., 119436., 120906., 122376., 124212., 125688., 127164., 128640.,
      130506., 131988., 133470., 134952., 136848., 138336., 139824., 141312.,
      157254., 158940., 160626., 162312., 164460., 166152., 167844., 169536.,
      171714., 173412., 175110., 176808., 179016., 180720., 182424., 184128.,
      159006., 160716., 162426., 164136., 166308., 168024., 169740., 171456.,
      173658., 175380., 177102., 178824., 181056., 182784., 184512., 186240.,
      216609., 219138., 221667., 224196., 227346., 229884., 232422., 234960.,
      238155., 240702., 243249., 245796., 249036., 251592., 254148., 256704.,
      218949., 221514., 224079., 226644., 229830., 232404., 234978., 237552.,
      240783., 243366., 245949., 248532., 251808., 254400., 256992., 259584.,
      221289., 223890., 226491., 229092., 232314., 234924., 237534., 240144.,
      243411., 246030., 248649., 251268., 254580., 257208., 259836., 262464.,
      131646., 133356., 135066., 136776., 138852., 140568., 142284., 144000.,
      146106., 147828., 149550., 151272., 153408., 155136., 156864., 158592.,
      133014., 134748., 136482., 138216., 140316., 142056., 143796., 145536.,
      147666., 149412., 151158., 152904., 155064., 156816., 158568., 160320.,
      55156.,  56104.,  57052.,  58000.,  59160.,  60112.,  61064.,  62016.,
      63196.,  64152.,  65108.,  66064.,  67264.,  68224.,  69184.,  70144.,
      55940.,  56904.,  57868.,  58832.,  60008.,  60976.,  61944.,  62912.,
      64108.,  65080.,  66052.,  67024.,  68240.,  69216.,  70192.,  71168.,
      71998.,  73420.,  74842.,  76264.,  77956.,  79384.,  80812.,  82240.,
      83962.,  85396.,  86830.,  88264.,  90016.,  91456.,  92896.,  94336.,
      72982.,  74428.,  75874.,  77320.,  79036.,  80488.,  81940.,  83392.,
      85138.,  86596.,  88054.,  89512.,  91288.,  92752.,  94216.,  95680.,
      73966.,  75436.,  76906.,  78376.,  80116.,  81592.,  83068.,  84544.,
      86314.,  87796.,  89278.,  90760.,  92560.,  94048.,  95536.,  97024.,
      40516.,  41480.,  42444.,  43408.,  44520.,  45488.,  46456.,  47424.,
      48556.,  49528.,  50500.,  51472.,  52624.,  53600.,  54576.,  55552.,
      41044.,  42024.,  43004.,  43984.,  45112.,  46096.,  47080.,  48064.,
      49212.,  50200.,  51188.,  52176.,  53344.,  54336.,  55328.,  56320.,
      63780.,  64904.,  66028.,  67152.,  68488.,  69616.,  70744.,  71872.,
      73228.,  74360.,  75492.,  76624.,  78000.,  79136.,  80272.,  81408.,
      64564.,  65704.,  66844.,  67984.,  69336.,  70480.,  71624.,  72768.,
      74140.,  75288.,  76436.,  77584.,  78976.,  80128.,  81280.,  82432.,
      82822.,  84508.,  86194.,  87880.,  89836.,  91528.,  93220.,  94912.,
      96898.,  98596.,  100294., 101992., 104008., 105712., 107416., 109120.,
      83806.,  85516.,  87226.,  88936.,  90916.,  92632.,  94348.,  96064.,
      98074.,  99796.,  101518., 103240., 105280., 107008., 108736., 110464.,
      84790.,  86524.,  88258.,  89992.,  91996.,  93736.,  95476.,  97216.,
      99250.,  100996., 102742., 104488., 106552., 108304., 110056., 111808.,
      46324.,  47464.,  48604.,  49744.,  51032.,  52176.,  53320.,  54464.,
      55772.,  56920.,  58068.,  59216.,  60544.,  61696.,  62848.,  64000.,
      46852.,  48008.,  49164.,  50320.,  51624.,  52784.,  53944.,  55104.,
      56428.,  57592.,  58756.,  59920.,  61264.,  62432.,  63600.,  64768.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      15588., 15976., 16364., 16752., 17256., 17648., 18040., 18432., 18956.,
      19352., 19748., 20144., 20688., 21088., 21488., 21888., 15988., 16392.,
      16796., 17200., 17720., 18128., 18536., 18944., 19484., 19896., 20308.,
      20720., 21280., 21696., 22112., 22528., 16388., 16808., 17228., 17648.,
      18184., 18608., 19032., 19456., 20012., 20440., 20868., 21296., 21872.,
      22304., 22736., 23168., 16788., 17224., 17660., 18096., 18648., 19088.,
      19528., 19968., 20540., 20984., 21428., 21872., 22464., 22912., 23360.,
      23808., 17188., 17640., 18092., 18544., 19112., 19568., 20024., 20480.,
      21068., 21528., 21988., 22448., 23056., 23520., 23984., 24448., 17588.,
      18056., 18524., 18992., 19576., 20048., 20520., 20992., 21596., 22072.,
      22548., 23024., 23648., 24128., 24608., 25088., 17988., 18472., 18956.,
      19440., 20040., 20528., 21016., 21504., 22124., 22616., 23108., 23600.,
      24240., 24736., 25232., 25728., 19988., 20552., 21116., 21680., 22360.,
      22928., 23496., 24064., 24764., 25336., 25908., 26480., 27200., 27776.,
      28352., 28928., 20388., 20968., 21548., 22128., 22824., 23408., 23992.,
      24576., 25292., 25880., 26468., 27056., 27792., 28384., 28976., 29568.,
      20788., 21384., 21980., 22576., 23288., 23888., 24488., 25088., 25820.,
      26424., 27028., 27632., 28384., 28992., 29600., 30208., 21188., 21800.,
      22412., 23024., 23752., 24368., 24984., 25600., 26348., 26968., 27588.,
      28208., 28976., 29600., 30224., 30848., 21588., 22216., 22844., 23472.,
      24216., 24848., 25480., 26112., 26876., 27512., 28148., 28784., 29568.,
      30208., 30848., 31488., 21988., 22632., 23276., 23920., 24680., 25328.,
      25976., 26624., 27404., 28056., 28708., 29360., 30160., 30816., 31472.,
      32128., 22388., 23048., 23708., 24368., 25144., 25808., 26472., 27136.,
      27932., 28600., 29268., 29936., 30752., 31424., 32096., 32768., 24388.,
      25128., 25868., 26608., 27464., 28208., 28952., 29696., 30572., 31320.,
      32068., 32816., 33712., 34464., 35216., 35968., 24788., 25544., 26300.,
      27056., 27928., 28688., 29448., 30208., 31100., 31864., 32628., 33392.,
      34304., 35072., 35840., 36608., 25188., 25960., 26732., 27504., 28392.,
      29168., 29944., 30720., 31628., 32408., 33188., 33968., 34896., 35680.,
      36464., 37248., 25588., 26376., 27164., 27952., 28856., 29648., 30440.,
      31232., 32156., 32952., 33748., 34544., 35488., 36288., 37088., 37888.,
      25988., 26792., 27596., 28400., 29320., 30128., 30936., 31744., 32684.,
      33496., 34308., 35120., 36080., 36896., 37712., 38528., 26388., 27208.,
      28028., 28848., 29784., 30608., 31432., 32256., 33212., 34040., 34868.,
      35696., 36672., 37504., 38336., 39168., 26788., 27624., 28460., 29296.,
      30248., 31088., 31928., 32768., 33740., 34584., 35428., 36272., 37264.,
      38112., 38960., 39808., 28788., 29704., 30620., 31536., 32568., 33488.,
      34408., 35328., 36380., 37304., 38228., 39152., 40224., 41152., 42080.,
      43008., 29188., 30120., 31052., 31984., 33032., 33968., 34904., 35840.,
      36908., 37848., 38788., 39728., 40816., 41760., 42704., 43648., 29588.,
      30536., 31484., 32432., 33496., 34448., 35400., 36352., 37436., 38392.,
      39348., 40304., 41408., 42368., 43328., 44288., 29988., 30952., 31916.,
      32880., 33960., 34928., 35896., 36864., 37964., 38936., 39908., 40880.,
      42000., 42976., 43952., 44928., 30388., 31368., 32348., 33328., 34424.,
      35408., 36392., 37376., 38492., 39480., 40468., 41456., 42592., 43584.,
      44576., 45568., 30788., 31784., 32780., 33776., 34888., 35888., 36888.,
      37888., 39020., 40024., 41028., 42032., 43184., 44192., 45200., 46208.,
      31188., 32200., 33212., 34224., 35352., 36368., 37384., 38400., 39548.,
      40568., 41588., 42608., 43776., 44800., 45824., 46848., 33188., 34280.,
      35372., 36464., 37672., 38768., 39864., 40960., 42188., 43288., 44388.,
      45488., 46736., 47840., 48944., 50048., 33588., 34696., 35804., 36912.,
      38136., 39248., 40360., 41472., 42716., 43832., 44948., 46064., 47328.,
      48448., 49568., 50688., 33988., 35112., 36236., 37360., 38600., 39728.,
      40856., 41984., 43244., 44376., 45508., 46640., 47920., 49056., 50192.,
      51328., 34388., 35528., 36668., 37808., 39064., 40208., 41352., 42496.,
      43772., 44920., 46068., 47216., 48512., 49664., 50816., 51968., 34788.,
      35944., 37100., 38256., 39528., 40688., 41848., 43008., 44300., 45464.,
      46628., 47792., 49104., 50272., 51440., 52608., 35188., 36360., 37532.,
      38704., 39992., 41168., 42344., 43520., 44828., 46008., 47188., 48368.,
      49696., 50880., 52064., 53248., 35588., 36776., 37964., 39152., 40456.,
      41648., 42840., 44032., 45356., 46552., 47748., 48944., 50288., 51488.,
      52688., 53888., 37588., 38856., 40124., 41392., 42776., 44048., 45320.,
      46592., 47996., 49272., 50548., 51824., 53248., 54528., 55808., 57088.,
      37988., 39272., 40556., 41840., 43240., 44528., 45816., 47104., 48524.,
      49816., 51108., 52400., 53840., 55136., 56432., 57728., 38388., 39688.,
      40988., 42288., 43704., 45008., 46312., 47616., 49052., 50360., 51668.,
      52976., 54432., 55744., 57056., 58368., 38788., 40104., 41420., 42736.,
      44168., 45488., 46808., 48128., 49580., 50904., 52228., 53552., 55024.,
      56352., 57680., 59008., 39188., 40520., 41852., 43184., 44632., 45968.,
      47304., 48640., 50108., 51448., 52788., 54128., 55616., 56960., 58304.,
      59648., 39588., 40936., 42284., 43632., 45096., 46448., 47800., 49152.,
      50636., 51992., 53348., 54704., 56208., 57568., 58928., 60288., 39988.,
      41352., 42716., 44080., 45560., 46928., 48296., 49664., 51164., 52536.,
      53908., 55280., 56800., 58176., 59552., 60928., 41988., 43432., 44876.,
      46320., 47880., 49328., 50776., 52224., 53804., 55256., 56708., 58160.,
      59760., 61216., 62672., 64128., 42388., 43848., 45308., 46768., 48344.,
      49808., 51272., 52736., 54332., 55800., 57268., 58736., 60352., 61824.,
      63296., 64768., 42788., 44264., 45740., 47216., 48808., 50288., 51768.,
      53248., 54860., 56344., 57828., 59312., 60944., 62432., 63920., 65408.,
      43188., 44680., 46172., 47664., 49272., 50768., 52264., 53760., 55388.,
      56888., 58388., 59888., 61536., 63040., 64544., 66048., 43588., 45096.,
      46604., 48112., 49736., 51248., 52760., 54272., 55916., 57432., 58948.,
      60464., 62128., 63648., 65168., 66688., 43988., 45512., 47036., 48560.,
      50200., 51728., 53256., 54784., 56444., 57976., 59508., 61040., 62720.,
      64256., 65792., 67328., 44388., 45928., 47468., 49008., 50664., 52208.,
      53752., 55296., 56972., 58520., 60068., 61616., 63312., 64864., 66416.,
      67968.};
  const std::array<int, 4> in_shape = {{1, 11, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1660., 2299., 2338., 2377., 2416., 1468., 1492., 1996., 2767., 2806.,
      2845., 2884., 1756., 1780., 2364., 3273., 3318., 3363., 3408., 2067.,
      2094., 2760., 3813., 3858., 3903., 3948., 2391., 2418., 3156., 4353.,
      4398., 4443., 4488., 2715., 2742., 1204., 1597., 1618., 1639., 1660.,
      952.,  964.,  1396., 1849., 1870., 1891., 1912., 1096., 1108.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      370.,  380.,  390.,  400.,  410.,  420.,  430.,  490.,  500.,  510.,
      520.,  530.,  540.,  550.,  610.,  620.,  630.,  640.,  650.,  660.,
      670.,  730.,  740.,  750.,  760.,  770.,  780.,  790.,  850.,  860.,
      870.,  880.,  890.,  900.,  910.,  970.,  980.,  990.,  1000., 1010.,
      1020., 1030., 1090., 1100., 1110., 1120., 1130., 1140., 1150.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3104., 3320., 4280., 4598., 4352., 4676., 4424., 4754., 4496., 4832.,
      2716., 2936., 2760., 2984., 3728., 3992., 5144., 5534., 5216., 5612.,
      5288., 5690., 5360., 5768., 3244., 3512., 3288., 3560., 4404., 4728.,
      6069., 6546., 6150., 6636., 6231., 6726., 6312., 6816., 3804., 4134.,
      3852., 4188., 5124., 5520., 7041., 7626., 7122., 7716., 7203., 7806.,
      7284., 7896., 4380., 4782., 4428., 4836., 5844., 6312., 8013., 8706.,
      8094., 8796., 8175., 8886., 8256., 8976., 4956., 5430., 5004., 5484.,
      2144., 2408., 2804., 3194., 2840., 3236., 2876., 3278., 2912., 3320.,
      1636., 1904., 1656., 1928., 2480., 2792., 3236., 3698., 3272., 3740.,
      3308., 3782., 3344., 3824., 1876., 2192., 1896., 2216.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      632.,  740.,  648.,  760.,  664.,  780.,  680.,  800.,  696.,  820.,
      712.,  840.,  728.,  860.,  824.,  980.,  840.,  1000., 856.,  1020.,
      872.,  1040., 888.,  1060., 904.,  1080., 920.,  1100., 1016., 1220.,
      1032., 1240., 1048., 1260., 1064., 1280., 1080., 1300., 1096., 1320.,
      1112., 1340., 1208., 1460., 1224., 1480., 1240., 1500., 1256., 1520.,
      1272., 1540., 1288., 1560., 1304., 1580., 1400., 1700., 1416., 1720.,
      1432., 1740., 1448., 1760., 1464., 1780., 1480., 1800., 1496., 1820.,
      1592., 1940., 1608., 1960., 1624., 1980., 1640., 2000., 1656., 2020.,
      1672., 2040., 1688., 2060., 1784., 2180., 1800., 2200., 1816., 2220.,
      1832., 2240., 1848., 2260., 1864., 2280., 1880., 2300.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5992.,  6208.,  6424.,  6640.,  8242.,  8560.,  8878.,  9196.,  8380.,
      8704.,  9028.,  9352.,  8518.,  8848.,  9178.,  9508.,  8656.,  8992.,
      9328.,  9664.,  5212.,  5432.,  5652.,  5872.,  5296.,  5520.,  5744.,
      5968.,  7192.,  7456.,  7720.,  7984.,  9898.,  10288., 10678., 11068.,
      10036., 10432., 10828., 11224., 10174., 10576., 10978., 11380., 10312.,
      10720., 11128., 11536., 6220.,  6488.,  6756.,  7024.,  6304.,  6576.,
      6848.,  7120.,  8484.,  8808.,  9132.,  9456.,  11661., 12138., 12615.,
      13092., 11814., 12300., 12786., 13272., 11967., 12462., 12957., 13452.,
      12120., 12624., 13128., 13632., 7278.,  7608.,  7938.,  8268.,  7368.,
      7704.,  8040.,  8376.,  9852.,  10248., 10644., 11040., 13497., 14082.,
      14667., 15252., 13650., 14244., 14838., 15432., 13803., 14406., 15009.,
      15612., 13956., 14568., 15180., 15792., 8358.,  8760.,  9162.,  9564.,
      8448.,  8856.,  9264.,  9672.,  11220., 11688., 12156., 12624., 15333.,
      16026., 16719., 17412., 15486., 16188., 16890., 17592., 15639., 16350.,
      17061., 17772., 15792., 16512., 17232., 17952., 9438.,  9912.,  10386.,
      10860., 9528.,  10008., 10488., 10968., 4024.,  4288.,  4552.,  4816.,
      5218.,  5608.,  5998.,  6388.,  5284.,  5680.,  6076.,  6472.,  5350.,
      5752.,  6154.,  6556.,  5416.,  5824.,  6232.,  6640.,  3004.,  3272.,
      3540.,  3808.,  3040.,  3312.,  3584.,  3856.,  4648.,  4960.,  5272.,
      5584.,  6010.,  6472.,  6934.,  7396.,  6076.,  6544.,  7012.,  7480.,
      6142.,  6616.,  7090.,  7564.,  6208.,  6688.,  7168.,  7648.,  3436.,
      3752.,  4068.,  4384.,  3472.,  3792.,  4112.,  4432.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1156., 1264., 1372., 1480., 1184., 1296., 1408., 1520., 1212., 1328.,
      1444., 1560., 1240., 1360., 1480., 1600., 1268., 1392., 1516., 1640.,
      1296., 1424., 1552., 1680., 1324., 1456., 1588., 1720., 1492., 1648.,
      1804., 1960., 1520., 1680., 1840., 2000., 1548., 1712., 1876., 2040.,
      1576., 1744., 1912., 2080., 1604., 1776., 1948., 2120., 1632., 1808.,
      1984., 2160., 1660., 1840., 2020., 2200., 1828., 2032., 2236., 2440.,
      1856., 2064., 2272., 2480., 1884., 2096., 2308., 2520., 1912., 2128.,
      2344., 2560., 1940., 2160., 2380., 2600., 1968., 2192., 2416., 2640.,
      1996., 2224., 2452., 2680., 2164., 2416., 2668., 2920., 2192., 2448.,
      2704., 2960., 2220., 2480., 2740., 3000., 2248., 2512., 2776., 3040.,
      2276., 2544., 2812., 3080., 2304., 2576., 2848., 3120., 2332., 2608.,
      2884., 3160., 2500., 2800., 3100., 3400., 2528., 2832., 3136., 3440.,
      2556., 2864., 3172., 3480., 2584., 2896., 3208., 3520., 2612., 2928.,
      3244., 3560., 2640., 2960., 3280., 3600., 2668., 2992., 3316., 3640.,
      2836., 3184., 3532., 3880., 2864., 3216., 3568., 3920., 2892., 3248.,
      3604., 3960., 2920., 3280., 3640., 4000., 2948., 3312., 3676., 4040.,
      2976., 3344., 3712., 4080., 3004., 3376., 3748., 4120., 3172., 3568.,
      3964., 4360., 3200., 3600., 4000., 4400., 3228., 3632., 4036., 4440.,
      3256., 3664., 4072., 4480., 3284., 3696., 4108., 4520., 3312., 3728.,
      4144., 4560., 3340., 3760., 4180., 4600.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6156.,  6640.,  8488.,  9196.,  8632.,  9352.,  8776.,  9508.,  8920.,
      9664.,  5388.,  5872.,  5476.,  5968.,  7404.,  7984.,  10216., 11068.,
      10360., 11224., 10504., 11380., 10648., 11536., 6444.,  7024.,  6532.,
      7120.,  8748.,  9456.,  12057., 13092., 12219., 13272., 12381., 13452.,
      12543., 13632., 7560.,  8268.,  7656.,  8376.,  10188., 11040., 14001.,
      15252., 14163., 15432., 14325., 15612., 14487., 15792., 8712.,  9564.,
      8808.,  9672.,  11628., 12624., 15945., 17412., 16107., 17592., 16269.,
      17772., 16431., 17952., 9864.,  10860., 9960.,  10968., 4260.,  4816.,
      5572.,  6388.,  5644.,  6472.,  5716.,  6556.,  5788.,  6640.,  3252.,
      3808.,  3292.,  3856.,  4932.,  5584.,  6436.,  7396.,  6508.,  7480.,
      6580.,  7564.,  6652.,  7648.,  3732.,  4384.,  3772.,  4432.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1248., 1480., 1280., 1520., 1312., 1560., 1344., 1600., 1376., 1640.,
      1408., 1680., 1440., 1720., 1632., 1960., 1664., 2000., 1696., 2040.,
      1728., 2080., 1760., 2120., 1792., 2160., 1824., 2200., 2016., 2440.,
      2048., 2480., 2080., 2520., 2112., 2560., 2144., 2600., 2176., 2640.,
      2208., 2680., 2400., 2920., 2432., 2960., 2464., 3000., 2496., 3040.,
      2528., 3080., 2560., 3120., 2592., 3160., 2784., 3400., 2816., 3440.,
      2848., 3480., 2880., 3520., 2912., 3560., 2944., 3600., 2976., 3640.,
      3168., 3880., 3200., 3920., 3232., 3960., 3264., 4000., 3296., 4040.,
      3328., 4080., 3360., 4120., 3552., 4360., 3584., 4400., 3616., 4440.,
      3648., 4480., 3680., 4520., 3712., 4560., 3744., 4600.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      11884., 12312., 12848., 13280., 16346., 16976., 17756., 18392., 16622.,
      17264., 18056., 18704., 16898., 17552., 18356., 19016., 17174., 17840.,
      18656., 19328., 10340., 10776., 11304., 11744., 10508., 10952., 11488.,
      11936., 14284., 14808., 15440., 15968., 19658., 20432., 21356., 22136.,
      19934., 20720., 21656., 22448., 20210., 21008., 21956., 22760., 20486.,
      21296., 22256., 23072., 12356., 12888., 13512., 14048., 12524., 13064.,
      13696., 14240., 16854., 17496., 18264., 18912., 23169., 24114., 25230.,
      26184., 23475., 24438., 25572., 26544., 23781., 24762., 25914., 26904.,
      24087., 25086., 26256., 27264., 14466., 15120., 15876., 16536., 14646.,
      15312., 16080., 16752., 19590., 20376., 21288., 22080., 26841., 28002.,
      29334., 30504., 27147., 28326., 29676., 30864., 27453., 28650., 30018.,
      31224., 27759., 28974., 30360., 31584., 16626., 17424., 18324., 19128.,
      16806., 17616., 18528., 19344., 22326., 23256., 24312., 25248., 30513.,
      31890., 33438., 34824., 30819., 32214., 33780., 35184., 31125., 32538.,
      34122., 35544., 31431., 32862., 34464., 35904., 18786., 19728., 20772.,
      21720., 18966., 19920., 20976., 21936., 7996.,  8520.,  9104.,  9632.,
      10370., 11144., 11996., 12776., 10502., 11288., 12152., 12944., 10634.,
      11432., 12308., 13112., 10766., 11576., 12464., 13280., 5972.,  6504.,
      7080.,  7616.,  6044.,  6584.,  7168.,  7712.,  9244.,  9864.,  10544.,
      11168., 11954., 12872., 13868., 14792., 12086., 13016., 14024., 14960.,
      12218., 13160., 14180., 15128., 12350., 13304., 14336., 15296., 6836.,
      7464.,  8136.,  8768.,  6908.,  7544.,  8224.,  8864.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2284., 2496., 2744., 2960., 2340., 2560., 2816., 3040., 2396., 2624.,
      2888., 3120., 2452., 2688., 2960., 3200., 2508., 2752., 3032., 3280.,
      2564., 2816., 3104., 3360., 2620., 2880., 3176., 3440., 2956., 3264.,
      3608., 3920., 3012., 3328., 3680., 4000., 3068., 3392., 3752., 4080.,
      3124., 3456., 3824., 4160., 3180., 3520., 3896., 4240., 3236., 3584.,
      3968., 4320., 3292., 3648., 4040., 4400., 3628., 4032., 4472., 4880.,
      3684., 4096., 4544., 4960., 3740., 4160., 4616., 5040., 3796., 4224.,
      4688., 5120., 3852., 4288., 4760., 5200., 3908., 4352., 4832., 5280.,
      3964., 4416., 4904., 5360., 4300., 4800., 5336., 5840., 4356., 4864.,
      5408., 5920., 4412., 4928., 5480., 6000., 4468., 4992., 5552., 6080.,
      4524., 5056., 5624., 6160., 4580., 5120., 5696., 6240., 4636., 5184.,
      5768., 6320., 4972., 5568., 6200., 6800., 5028., 5632., 6272., 6880.,
      5084., 5696., 6344., 6960., 5140., 5760., 6416., 7040., 5196., 5824.,
      6488., 7120., 5252., 5888., 6560., 7200., 5308., 5952., 6632., 7280.,
      5644., 6336., 7064., 7760., 5700., 6400., 7136., 7840., 5756., 6464.,
      7208., 7920., 5812., 6528., 7280., 8000., 5868., 6592., 7352., 8080.,
      5924., 6656., 7424., 8160., 5980., 6720., 7496., 8240., 6316., 7104.,
      7928., 8720., 6372., 7168., 8000., 8800., 6428., 7232., 8072., 8880.,
      6484., 7296., 8144., 8960., 6540., 7360., 8216., 9040., 6596., 7424.,
      8288., 9120., 6652., 7488., 8360., 9200.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      23340., 23768., 24196., 24624., 25264., 25696., 26128., 26560., 32062.,
      32692., 33322., 33952., 34876., 35512., 36148., 36784., 32602., 33244.,
      33886., 34528., 35464., 36112., 36760., 37408., 33142., 33796., 34450.,
      35104., 36052., 36712., 37372., 38032., 33682., 34348., 35014., 35680.,
      36640., 37312., 37984., 38656., 20244., 20680., 21116., 21552., 22168.,
      22608., 23048., 23488., 20572., 21016., 21460., 21904., 22528., 22976.,
      23424., 23872., 28044., 28568., 29092., 29616., 30352., 30880., 31408.,
      31936., 38542., 39316., 40090., 40864., 41932., 42712., 43492., 44272.,
      39082., 39868., 40654., 41440., 42520., 43312., 44104., 44896., 39622.,
      40420., 41218., 42016., 43108., 43912., 44716., 45520., 40162., 40972.,
      41782., 42592., 43696., 44512., 45328., 46144., 24180., 24712., 25244.,
      25776., 26488., 27024., 27560., 28096., 24508., 25048., 25588., 26128.,
      26848., 27392., 27936., 28480., 33066., 33708., 34350., 34992., 35880.,
      36528., 37176., 37824., 45393., 46338., 47283., 48228., 49506., 50460.,
      51414., 52368., 45987., 46950., 47913., 48876., 50172., 51144., 52116.,
      53088., 46581., 47562., 48543., 49524., 50838., 51828., 52818., 53808.,
      47175., 48174., 49173., 50172., 51504., 52512., 53520., 54528., 28278.,
      28932., 29586., 30240., 31092., 31752., 32412., 33072., 28626., 29292.,
      29958., 30624., 31488., 32160., 32832., 33504., 38394., 39180., 39966.,
      40752., 41784., 42576., 43368., 44160., 52521., 53682., 54843., 56004.,
      57498., 58668., 59838., 61008., 53115., 54294., 55473., 56652., 58164.,
      59352., 60540., 61728., 53709., 54906., 56103., 57300., 58830., 60036.,
      61242., 62448., 54303., 55518., 56733., 57948., 59496., 60720., 61944.,
      63168., 32454., 33252., 34050., 34848., 35844., 36648., 37452., 38256.,
      32802., 33612., 34422., 35232., 36240., 37056., 37872., 38688., 43722.,
      44652., 45582., 46512., 47688., 48624., 49560., 50496., 59649., 61026.,
      62403., 63780., 65490., 66876., 68262., 69648., 60243., 61638., 63033.,
      64428., 66156., 67560., 68964., 70368., 60837., 62250., 63663., 65076.,
      66822., 68244., 69666., 71088., 61431., 62862., 64293., 65724., 67488.,
      68928., 70368., 71808., 36630., 37572., 38514., 39456., 40596., 41544.,
      42492., 43440., 36978., 37932., 38886., 39840., 40992., 41952., 42912.,
      43872., 15468., 15992., 16516., 17040., 17680., 18208., 18736., 19264.,
      19966., 20740., 21514., 22288., 23212., 23992., 24772., 25552., 20218.,
      21004., 21790., 22576., 23512., 24304., 25096., 25888., 20470., 21268.,
      22066., 22864., 23812., 24616., 25420., 26224., 20722., 21532., 22342.,
      23152., 24112., 24928., 25744., 26560., 11412., 11944., 12476., 13008.,
      13624., 14160., 14696., 15232., 11548., 12088., 12628., 13168., 13792.,
      14336., 14880., 15424., 17868., 18488., 19108., 19728., 20464., 21088.,
      21712., 22336., 22990., 23908., 24826., 25744., 26812., 27736., 28660.,
      29584., 23242., 24172., 25102., 26032., 27112., 28048., 28984., 29920.,
      23494., 24436., 25378., 26320., 27412., 28360., 29308., 30256., 23746.,
      24700., 25654., 26608., 27712., 28672., 29632., 30592., 13044., 13672.,
      14300., 14928., 15640., 16272., 16904., 17536., 13180., 13816., 14452.,
      15088., 15808., 16448., 17088., 17728.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4356.,  4568.,  4780.,  4992.,  5272.,  5488.,  5704.,  5920.,  4460.,
      4680.,  4900.,  5120.,  5408.,  5632.,  5856.,  6080.,  4564.,  4792.,
      5020.,  5248.,  5544.,  5776.,  6008.,  6240.,  4668.,  4904.,  5140.,
      5376.,  5680.,  5920.,  6160.,  6400.,  4772.,  5016.,  5260.,  5504.,
      5816.,  6064.,  6312.,  6560.,  4876.,  5128.,  5380.,  5632.,  5952.,
      6208.,  6464.,  6720.,  4980.,  5240.,  5500.,  5760.,  6088.,  6352.,
      6616.,  6880.,  5604.,  5912.,  6220.,  6528.,  6904.,  7216.,  7528.,
      7840.,  5708.,  6024.,  6340.,  6656.,  7040.,  7360.,  7680.,  8000.,
      5812.,  6136.,  6460.,  6784.,  7176.,  7504.,  7832.,  8160.,  5916.,
      6248.,  6580.,  6912.,  7312.,  7648.,  7984.,  8320.,  6020.,  6360.,
      6700.,  7040.,  7448.,  7792.,  8136.,  8480.,  6124.,  6472.,  6820.,
      7168.,  7584.,  7936.,  8288.,  8640.,  6228.,  6584.,  6940.,  7296.,
      7720.,  8080.,  8440.,  8800.,  6852.,  7256.,  7660.,  8064.,  8536.,
      8944.,  9352.,  9760.,  6956.,  7368.,  7780.,  8192.,  8672.,  9088.,
      9504.,  9920.,  7060.,  7480.,  7900.,  8320.,  8808.,  9232.,  9656.,
      10080., 7164.,  7592.,  8020.,  8448.,  8944.,  9376.,  9808.,  10240.,
      7268.,  7704.,  8140.,  8576.,  9080.,  9520.,  9960.,  10400., 7372.,
      7816.,  8260.,  8704.,  9216.,  9664.,  10112., 10560., 7476.,  7928.,
      8380.,  8832.,  9352.,  9808.,  10264., 10720., 8100.,  8600.,  9100.,
      9600.,  10168., 10672., 11176., 11680., 8204.,  8712.,  9220.,  9728.,
      10304., 10816., 11328., 11840., 8308.,  8824.,  9340.,  9856.,  10440.,
      10960., 11480., 12000., 8412.,  8936.,  9460.,  9984.,  10576., 11104.,
      11632., 12160., 8516.,  9048.,  9580.,  10112., 10712., 11248., 11784.,
      12320., 8620.,  9160.,  9700.,  10240., 10848., 11392., 11936., 12480.,
      8724.,  9272.,  9820.,  10368., 10984., 11536., 12088., 12640., 9348.,
      9944.,  10540., 11136., 11800., 12400., 13000., 13600., 9452.,  10056.,
      10660., 11264., 11936., 12544., 13152., 13760., 9556.,  10168., 10780.,
      11392., 12072., 12688., 13304., 13920., 9660.,  10280., 10900., 11520.,
      12208., 12832., 13456., 14080., 9764.,  10392., 11020., 11648., 12344.,
      12976., 13608., 14240., 9868.,  10504., 11140., 11776., 12480., 13120.,
      13760., 14400., 9972.,  10616., 11260., 11904., 12616., 13264., 13912.,
      14560., 10596., 11288., 11980., 12672., 13432., 14128., 14824., 15520.,
      10700., 11400., 12100., 12800., 13568., 14272., 14976., 15680., 10804.,
      11512., 12220., 12928., 13704., 14416., 15128., 15840., 10908., 11624.,
      12340., 13056., 13840., 14560., 15280., 16000., 11012., 11736., 12460.,
      13184., 13976., 14704., 15432., 16160., 11116., 11848., 12580., 13312.,
      14112., 14848., 15584., 16320., 11220., 11960., 12700., 13440., 14248.,
      14992., 15736., 16480., 11844., 12632., 13420., 14208., 15064., 15856.,
      16648., 17440., 11948., 12744., 13540., 14336., 15200., 16000., 16800.,
      17600., 12052., 12856., 13660., 14464., 15336., 16144., 16952., 17760.,
      12156., 12968., 13780., 14592., 15472., 16288., 17104., 17920., 12260.,
      13080., 13900., 14720., 15608., 16432., 17256., 18080., 12364., 13192.,
      14020., 14848., 15744., 16576., 17408., 18240., 12468., 13304., 14140.,
      14976., 15880., 16720., 17560., 18400.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      23668., 24624., 25588., 26560., 32554., 33952., 35362., 36784., 33106.,
      34528., 35962., 37408., 33658., 35104., 36562., 38032., 34210., 35680.,
      37162., 38656., 20596., 21552., 22516., 23488., 20932., 21904., 22884.,
      23872., 28468., 29616., 30772., 31936., 39178., 40864., 42562., 44272.,
      39730., 41440., 43162., 44896., 40282., 42016., 43762., 45520., 40834.,
      42592., 44362., 46144., 24628., 25776., 26932., 28096., 24964., 26128.,
      27300., 28480., 33594., 34992., 36402., 37824., 46185., 48228., 50289.,
      52368., 46797., 48876., 50973., 53088., 47409., 49524., 51657., 53808.,
      48021., 50172., 52341., 54528., 28842., 30240., 31650., 33072., 29202.,
      30624., 32058., 33504., 39066., 40752., 42450., 44160., 53529., 56004.,
      58497., 61008., 54141., 56652., 59181., 61728., 54753., 57300., 59865.,
      62448., 55365., 57948., 60549., 63168., 33162., 34848., 36546., 38256.,
      33522., 35232., 36954., 38688., 44538., 46512., 48498., 50496., 60873.,
      63780., 66705., 69648., 61485., 64428., 67389., 70368., 62097., 65076.,
      68073., 71088., 62709., 65724., 68757., 71808., 37482., 39456., 41442.,
      43440., 37842., 39840., 41850., 43872., 15940., 17040., 18148., 19264.,
      20674., 22288., 23914., 25552., 20938., 22576., 24226., 25888., 21202.,
      22864., 24538., 26224., 21466., 23152., 24850., 26560., 11908., 13008.,
      14116., 15232., 12052., 13168., 14292., 15424., 18436., 19728., 21028.,
      22336., 23842., 25744., 27658., 29584., 24106., 26032., 27970., 29920.,
      24370., 26320., 28282., 30256., 24634., 26608., 28594., 30592., 13636.,
      14928., 16228., 17536., 13780., 15088., 16404., 17728.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4540.,  4992.,  5452.,  5920.,  4652.,  5120.,  5596.,  6080.,  4764.,
      5248.,  5740.,  6240.,  4876.,  5376.,  5884.,  6400.,  4988.,  5504.,
      6028.,  6560.,  5100.,  5632.,  6172.,  6720.,  5212.,  5760.,  6316.,
      6880.,  5884.,  6528.,  7180.,  7840.,  5996.,  6656.,  7324.,  8000.,
      6108.,  6784.,  7468.,  8160.,  6220.,  6912.,  7612.,  8320.,  6332.,
      7040.,  7756.,  8480.,  6444.,  7168.,  7900.,  8640.,  6556.,  7296.,
      8044.,  8800.,  7228.,  8064.,  8908.,  9760.,  7340.,  8192.,  9052.,
      9920.,  7452.,  8320.,  9196.,  10080., 7564.,  8448.,  9340.,  10240.,
      7676.,  8576.,  9484.,  10400., 7788.,  8704.,  9628.,  10560., 7900.,
      8832.,  9772.,  10720., 8572.,  9600.,  10636., 11680., 8684.,  9728.,
      10780., 11840., 8796.,  9856.,  10924., 12000., 8908.,  9984.,  11068.,
      12160., 9020.,  10112., 11212., 12320., 9132.,  10240., 11356., 12480.,
      9244.,  10368., 11500., 12640., 9916.,  11136., 12364., 13600., 10028.,
      11264., 12508., 13760., 10140., 11392., 12652., 13920., 10252., 11520.,
      12796., 14080., 10364., 11648., 12940., 14240., 10476., 11776., 13084.,
      14400., 10588., 11904., 13228., 14560., 11260., 12672., 14092., 15520.,
      11372., 12800., 14236., 15680., 11484., 12928., 14380., 15840., 11596.,
      13056., 14524., 16000., 11708., 13184., 14668., 16160., 11820., 13312.,
      14812., 16320., 11932., 13440., 14956., 16480., 12604., 14208., 15820.,
      17440., 12716., 14336., 15964., 17600., 12828., 14464., 16108., 17760.,
      12940., 14592., 16252., 17920., 13052., 14720., 16396., 18080., 13164.,
      14848., 16540., 18240., 13276., 14976., 16684., 18400.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      46484.,  47336.,  48392.,  49248.,  50316.,  51176.,  52256.,  53120.,
      63854.,  65108.,  66644.,  67904.,  69458.,  70724.,  72296.,  73568.,
      64934.,  66212.,  67772.,  69056.,  70634.,  71924.,  73520.,  74816.,
      66014.,  67316.,  68900.,  70208.,  71810.,  73124.,  74744.,  76064.,
      67094.,  68420.,  70028.,  71360.,  72986.,  74324.,  75968.,  77312.,
      40324.,  41192.,  42232.,  43104.,  44156.,  45032.,  46096.,  46976.,
      40980.,  41864.,  42920.,  43808.,  44876.,  45768.,  46848.,  47744.,
      55892.,  56936.,  58184.,  59232.,  60492.,  61544.,  62816.,  63872.,
      76814.,  78356.,  80180.,  81728.,  83570.,  85124.,  86984.,  88544.,
      77894.,  79460.,  81308.,  82880.,  84746.,  86324.,  88208.,  89792.,
      78974.,  80564.,  82436.,  84032.,  85922.,  87524.,  89432.,  91040.,
      80054.,  81668.,  83564.,  85184.,  87098.,  88724.,  90656.,  92288.,
      48196.,  49256.,  50488.,  51552.,  52796.,  53864.,  55120.,  56192.,
      48852.,  49928.,  51176.,  52256.,  53516.,  54600.,  55872.,  56960.,
      65910.,  67188.,  68700.,  69984.,  71514.,  72804.,  74352.,  75648.,
      90489.,  92370.,  94566.,  96456.,  98679.,  100578., 102828., 104736.,
      91677.,  93594.,  95826.,  97752.,  100011., 101946., 104232., 106176.,
      92865.,  94818.,  97086.,  99048.,  101343., 103314., 105636., 107616.,
      94053.,  96042.,  98346.,  100344., 102675., 104682., 107040., 109056.,
      56382.,  57684.,  59172.,  60480.,  61986.,  63300.,  64824.,  66144.,
      57078.,  58404.,  59916.,  61248.,  62778.,  64116.,  65664.,  67008.,
      76566.,  78132.,  79932.,  81504.,  83322.,  84900.,  86736.,  88320.,
      104745., 107058., 109686., 112008., 114663., 116994., 119676., 122016.,
      105933., 108282., 110946., 113304., 115995., 118362., 121080., 123456.,
      107121., 109506., 112206., 114600., 117327., 119730., 122484., 124896.,
      108309., 110730., 113466., 115896., 118659., 121098., 123888., 126336.,
      64734.,  66324.,  68100.,  69696.,  71490.,  73092.,  74904.,  76512.,
      65430.,  67044.,  68844.,  70464.,  72282.,  73908.,  75744.,  77376.,
      87222.,  89076.,  91164.,  93024.,  95130.,  96996.,  99120.,  100992.,
      119001., 121746., 124806., 127560., 130647., 133410., 136524., 139296.,
      120189., 122970., 126066., 128856., 131979., 134778., 137928., 140736.,
      121377., 124194., 127326., 130152., 133311., 136146., 139332., 142176.,
      122565., 125418., 128586., 131448., 134643., 137514., 140736., 143616.,
      73086.,  74964.,  77028.,  78912.,  80994.,  82884.,  84984.,  86880.,
      73782.,  75684.,  77772.,  79680.,  81786.,  83700.,  85824.,  87744.,
      30836.,  31880.,  33032.,  34080.,  35244.,  36296.,  37472.,  38528.,
      39806.,  41348.,  43028.,  44576.,  46274.,  47828.,  49544.,  51104.,
      40310.,  41876.,  43580.,  45152.,  46874.,  48452.,  50192.,  51776.,
      40814.,  42404.,  44132.,  45728.,  47474.,  49076.,  50840.,  52448.,
      41318.,  42932.,  44684.,  46304.,  48074.,  49700.,  51488.,  53120.,
      22756.,  23816.,  24952.,  26016.,  27164.,  28232.,  29392.,  30464.,
      23028.,  24104.,  25256.,  26336.,  27500.,  28584.,  29760.,  30848.,
      35636.,  36872.,  38216.,  39456.,  40812.,  42056.,  43424.,  44672.,
      45854.,  47684.,  49652.,  51488.,  53474.,  55316.,  57320.,  59168.,
      46358.,  48212.,  50204.,  52064.,  54074.,  55940.,  57968.,  59840.,
      46862.,  48740.,  50756.,  52640.,  54674.,  56564.,  58616.,  60512.,
      47366.,  49268.,  51308.,  53216.,  55274.,  57188.,  59264.,  61184.,
      26020.,  27272.,  28600.,  29856.,  31196.,  32456.,  33808.,  35072.,
      26292.,  27560.,  28904.,  30176.,  31532.,  32808.,  34176.,  35456.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8660.,  9080.,  9560.,  9984.,  10476., 10904., 11408., 11840., 8868.,
      9304.,  9800.,  10240., 10748., 11192., 11712., 12160., 9076.,  9528.,
      10040., 10496., 11020., 11480., 12016., 12480., 9284.,  9752.,  10280.,
      10752., 11292., 11768., 12320., 12800., 9492.,  9976.,  10520., 11008.,
      11564., 12056., 12624., 13120., 9700.,  10200., 10760., 11264., 11836.,
      12344., 12928., 13440., 9908.,  10424., 11000., 11520., 12108., 12632.,
      13232., 13760., 11156., 11768., 12440., 13056., 13740., 14360., 15056.,
      15680., 11364., 11992., 12680., 13312., 14012., 14648., 15360., 16000.,
      11572., 12216., 12920., 13568., 14284., 14936., 15664., 16320., 11780.,
      12440., 13160., 13824., 14556., 15224., 15968., 16640., 11988., 12664.,
      13400., 14080., 14828., 15512., 16272., 16960., 12196., 12888., 13640.,
      14336., 15100., 15800., 16576., 17280., 12404., 13112., 13880., 14592.,
      15372., 16088., 16880., 17600., 13652., 14456., 15320., 16128., 17004.,
      17816., 18704., 19520., 13860., 14680., 15560., 16384., 17276., 18104.,
      19008., 19840., 14068., 14904., 15800., 16640., 17548., 18392., 19312.,
      20160., 14276., 15128., 16040., 16896., 17820., 18680., 19616., 20480.,
      14484., 15352., 16280., 17152., 18092., 18968., 19920., 20800., 14692.,
      15576., 16520., 17408., 18364., 19256., 20224., 21120., 14900., 15800.,
      16760., 17664., 18636., 19544., 20528., 21440., 16148., 17144., 18200.,
      19200., 20268., 21272., 22352., 23360., 16356., 17368., 18440., 19456.,
      20540., 21560., 22656., 23680., 16564., 17592., 18680., 19712., 20812.,
      21848., 22960., 24000., 16772., 17816., 18920., 19968., 21084., 22136.,
      23264., 24320., 16980., 18040., 19160., 20224., 21356., 22424., 23568.,
      24640., 17188., 18264., 19400., 20480., 21628., 22712., 23872., 24960.,
      17396., 18488., 19640., 20736., 21900., 23000., 24176., 25280., 18644.,
      19832., 21080., 22272., 23532., 24728., 26000., 27200., 18852., 20056.,
      21320., 22528., 23804., 25016., 26304., 27520., 19060., 20280., 21560.,
      22784., 24076., 25304., 26608., 27840., 19268., 20504., 21800., 23040.,
      24348., 25592., 26912., 28160., 19476., 20728., 22040., 23296., 24620.,
      25880., 27216., 28480., 19684., 20952., 22280., 23552., 24892., 26168.,
      27520., 28800., 19892., 21176., 22520., 23808., 25164., 26456., 27824.,
      29120., 21140., 22520., 23960., 25344., 26796., 28184., 29648., 31040.,
      21348., 22744., 24200., 25600., 27068., 28472., 29952., 31360., 21556.,
      22968., 24440., 25856., 27340., 28760., 30256., 31680., 21764., 23192.,
      24680., 26112., 27612., 29048., 30560., 32000., 21972., 23416., 24920.,
      26368., 27884., 29336., 30864., 32320., 22180., 23640., 25160., 26624.,
      28156., 29624., 31168., 32640., 22388., 23864., 25400., 26880., 28428.,
      29912., 31472., 32960., 23636., 25208., 26840., 28416., 30060., 31640.,
      33296., 34880., 23844., 25432., 27080., 28672., 30332., 31928., 33600.,
      35200., 24052., 25656., 27320., 28928., 30604., 32216., 33904., 35520.,
      24260., 25880., 27560., 29184., 30876., 32504., 34208., 35840., 24468.,
      26104., 27800., 29440., 31148., 32792., 34512., 36160., 24676., 26328.,
      28040., 29696., 31420., 33080., 34816., 36480., 24884., 26552., 28280.,
      29952., 31692., 33368., 35120., 36800.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      92116.,  92968.,  93820.,  94672.,  95928.,  96784.,  97640.,  98496.,
      99772.,  100632., 101492., 102352., 103648., 104512., 105376., 106240.,
      126454., 127708., 128962., 130216., 132028., 133288., 134548., 135808.,
      137650., 138916., 140182., 141448., 143320., 144592., 145864., 147136.,
      128590., 129868., 131146., 132424., 134260., 135544., 136828., 138112.,
      139978., 141268., 142558., 143848., 145744., 147040., 148336., 149632.,
      130726., 132028., 133330., 134632., 136492., 137800., 139108., 140416.,
      142306., 143620., 144934., 146248., 148168., 149488., 150808., 152128.,
      132862., 134188., 135514., 136840., 138724., 140056., 141388., 142720.,
      144634., 145972., 147310., 148648., 150592., 151936., 153280., 154624.,
      79780.,  80648.,  81516.,  82384.,  83592.,  84464.,  85336.,  86208.,
      87436.,  88312.,  89188.,  90064.,  91312.,  92192.,  93072.,  93952.,
      81076.,  81960.,  82844.,  83728.,  84952.,  85840.,  86728.,  87616.,
      88860.,  89752.,  90644.,  91536.,  92800.,  93696.,  94592.,  95488.,
      110740., 111784., 112828., 113872., 115320., 116368., 117416., 118464.,
      119932., 120984., 122036., 123088., 124576., 125632., 126688., 127744.,
      152086., 153628., 155170., 156712., 158812., 160360., 161908., 163456.,
      165586., 167140., 168694., 170248., 172408., 173968., 175528., 177088.,
      154222., 155788., 157354., 158920., 161044., 162616., 164188., 165760.,
      167914., 169492., 171070., 172648., 174832., 176416., 178000., 179584.,
      156358., 157948., 159538., 161128., 163276., 164872., 166468., 168064.,
      170242., 171844., 173446., 175048., 177256., 178864., 180472., 182080.,
      158494., 160108., 161722., 163336., 165508., 167128., 168748., 170368.,
      172570., 174196., 175822., 177448., 179680., 181312., 182944., 184576.,
      95332.,  96392.,  97452.,  98512.,  99912.,  100976., 102040., 103104.,
      104524., 105592., 106660., 107728., 109168., 110240., 111312., 112384.,
      96628.,  97704.,  98780.,  99856.,  101272., 102352., 103432., 104512.,
      105948., 107032., 108116., 109200., 110656., 111744., 112832., 113920.,
      130542., 131820., 133098., 134376., 136116., 137400., 138684., 139968.,
      141738., 143028., 144318., 145608., 147408., 148704., 150000., 151296.,
      179097., 180978., 182859., 184740., 187242., 189132., 191022., 192912.,
      195459., 197358., 199257., 201156., 203748., 205656., 207564., 209472.,
      181437., 183354., 185271., 187188., 189726., 191652., 193578., 195504.,
      198087., 200022., 201957., 203892., 206520., 208464., 210408., 212352.,
      183777., 185730., 187683., 189636., 192210., 194172., 196134., 198096.,
      200715., 202686., 204657., 206628., 209292., 211272., 213252., 215232.,
      186117., 188106., 190095., 192084., 194694., 196692., 198690., 200688.,
      203343., 205350., 207357., 209364., 212064., 214080., 216096., 218112.,
      111462., 112764., 114066., 115368., 117036., 118344., 119652., 120960.,
      122658., 123972., 125286., 126600., 128328., 129648., 130968., 132288.,
      112830., 114156., 115482., 116808., 118500., 119832., 121164., 122496.,
      124218., 125556., 126894., 128232., 129984., 131328., 132672., 134016.,
      151566., 153132., 154698., 156264., 158292., 159864., 161436., 163008.,
      165066., 166644., 168222., 169800., 171888., 173472., 175056., 176640.,
      207177., 209490., 211803., 214116., 217050., 219372., 221694., 224016.,
      226995., 229326., 231657., 233988., 237012., 239352., 241692., 244032.,
      209517., 211866., 214215., 216564., 219534., 221892., 224250., 226608.,
      229623., 231990., 234357., 236724., 239784., 242160., 244536., 246912.,
      211857., 214242., 216627., 219012., 222018., 224412., 226806., 229200.,
      232251., 234654., 237057., 239460., 242556., 244968., 247380., 249792.,
      214197., 216618., 219039., 221460., 224502., 226932., 229362., 231792.,
      234879., 237318., 239757., 242196., 245328., 247776., 250224., 252672.,
      127878., 129468., 131058., 132648., 134604., 136200., 137796., 139392.,
      141378., 142980., 144582., 146184., 148200., 149808., 151416., 153024.,
      129246., 130860., 132474., 134088., 136068., 137688., 139308., 140928.,
      142938., 144564., 146190., 147816., 149856., 151488., 153120., 154752.,
      172590., 174444., 176298., 178152., 180468., 182328., 184188., 186048.,
      188394., 190260., 192126., 193992., 196368., 198240., 200112., 201984.,
      235257., 238002., 240747., 243492., 246858., 249612., 252366., 255120.,
      258531., 261294., 264057., 266820., 270276., 273048., 275820., 278592.,
      237597., 240378., 243159., 245940., 249342., 252132., 254922., 257712.,
      261159., 263958., 266757., 269556., 273048., 275856., 278664., 281472.,
      239937., 242754., 245571., 248388., 251826., 254652., 257478., 260304.,
      263787., 266622., 269457., 272292., 275820., 278664., 281508., 284352.,
      242277., 245130., 247983., 250836., 254310., 257172., 260034., 262896.,
      266415., 269286., 272157., 275028., 278592., 281472., 284352., 287232.,
      144294., 146172., 148050., 149928., 152172., 154056., 155940., 157824.,
      160098., 161988., 163878., 165768., 168072., 169968., 171864., 173760.,
      145662., 147564., 149466., 151368., 153636., 155544., 157452., 159360.,
      161658., 163572., 165486., 167400., 169728., 171648., 173568., 175488.,
      60628.,  61672.,  62716.,  63760.,  65016.,  66064.,  67112.,  68160.,
      69436.,  70488.,  71540.,  72592.,  73888.,  74944.,  76000.,  77056.,
      78070.,  79612.,  81154.,  82696.,  84508.,  86056.,  87604.,  89152.,
      90994.,  92548.,  94102.,  95656.,  97528.,  99088.,  100648., 102208.,
      79054.,  80620.,  82186.,  83752.,  85588.,  87160.,  88732.,  90304.,
      92170.,  93748.,  95326.,  96904.,  98800.,  100384., 101968., 103552.,
      80038.,  81628.,  83218.,  84808.,  86668.,  88264.,  89860.,  91456.,
      93346.,  94948.,  96550.,  98152.,  100072., 101680., 103288., 104896.,
      81022.,  82636.,  84250.,  85864.,  87748.,  89368.,  90988.,  92608.,
      94522.,  96148.,  97774.,  99400.,  101344., 102976., 104608., 106240.,
      44452.,  45512.,  46572.,  47632.,  48840.,  49904.,  50968.,  52032.,
      53260.,  54328.,  55396.,  56464.,  57712.,  58784.,  59856.,  60928.,
      44980.,  46056.,  47132.,  48208.,  49432.,  50512.,  51592.,  52672.,
      53916.,  55000.,  56084.,  57168.,  58432.,  59520.,  60608.,  61696.,
      70036.,  71272.,  72508.,  73744.,  75192.,  76432.,  77672.,  78912.,
      80380.,  81624.,  82868.,  84112.,  85600.,  86848.,  88096.,  89344.,
      89878.,  91708.,  93538.,  95368.,  97468.,  99304.,  101140., 102976.,
      105106., 106948., 108790., 110632., 112792., 114640., 116488., 118336.,
      90862.,  92716.,  94570.,  96424.,  98548.,  100408., 102268., 104128.,
      106282., 108148., 110014., 111880., 114064., 115936., 117808., 119680.,
      91846.,  93724.,  95602.,  97480.,  99628.,  101512., 103396., 105280.,
      107458., 109348., 111238., 113128., 115336., 117232., 119128., 121024.,
      92830.,  94732.,  96634.,  98536.,  100708., 102616., 104524., 106432.,
      108634., 110548., 112462., 114376., 116608., 118528., 120448., 122368.,
      50788.,  52040.,  53292.,  54544.,  55944.,  57200.,  58456.,  59712.,
      61132.,  62392.,  63652.,  64912.,  66352.,  67616.,  68880.,  70144.,
      51316.,  52584.,  53852.,  55120.,  56536.,  57808.,  59080.,  60352.,
      61788.,  63064.,  64340.,  65616.,  67072.,  68352.,  69632.,  70912.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      16900., 17320., 17740., 18160., 18696., 19120., 19544., 19968., 20524.,
      20952., 21380., 21808., 22384., 22816., 23248., 23680., 17300., 17736.,
      18172., 18608., 19160., 19600., 20040., 20480., 21052., 21496., 21940.,
      22384., 22976., 23424., 23872., 24320., 17700., 18152., 18604., 19056.,
      19624., 20080., 20536., 20992., 21580., 22040., 22500., 22960., 23568.,
      24032., 24496., 24960., 18100., 18568., 19036., 19504., 20088., 20560.,
      21032., 21504., 22108., 22584., 23060., 23536., 24160., 24640., 25120.,
      25600., 18500., 18984., 19468., 19952., 20552., 21040., 21528., 22016.,
      22636., 23128., 23620., 24112., 24752., 25248., 25744., 26240., 18900.,
      19400., 19900., 20400., 21016., 21520., 22024., 22528., 23164., 23672.,
      24180., 24688., 25344., 25856., 26368., 26880., 19300., 19816., 20332.,
      20848., 21480., 22000., 22520., 23040., 23692., 24216., 24740., 25264.,
      25936., 26464., 26992., 27520., 21700., 22312., 22924., 23536., 24264.,
      24880., 25496., 26112., 26860., 27480., 28100., 28720., 29488., 30112.,
      30736., 31360., 22100., 22728., 23356., 23984., 24728., 25360., 25992.,
      26624., 27388., 28024., 28660., 29296., 30080., 30720., 31360., 32000.,
      22500., 23144., 23788., 24432., 25192., 25840., 26488., 27136., 27916.,
      28568., 29220., 29872., 30672., 31328., 31984., 32640., 22900., 23560.,
      24220., 24880., 25656., 26320., 26984., 27648., 28444., 29112., 29780.,
      30448., 31264., 31936., 32608., 33280., 23300., 23976., 24652., 25328.,
      26120., 26800., 27480., 28160., 28972., 29656., 30340., 31024., 31856.,
      32544., 33232., 33920., 23700., 24392., 25084., 25776., 26584., 27280.,
      27976., 28672., 29500., 30200., 30900., 31600., 32448., 33152., 33856.,
      34560., 24100., 24808., 25516., 26224., 27048., 27760., 28472., 29184.,
      30028., 30744., 31460., 32176., 33040., 33760., 34480., 35200., 26500.,
      27304., 28108., 28912., 29832., 30640., 31448., 32256., 33196., 34008.,
      34820., 35632., 36592., 37408., 38224., 39040., 26900., 27720., 28540.,
      29360., 30296., 31120., 31944., 32768., 33724., 34552., 35380., 36208.,
      37184., 38016., 38848., 39680., 27300., 28136., 28972., 29808., 30760.,
      31600., 32440., 33280., 34252., 35096., 35940., 36784., 37776., 38624.,
      39472., 40320., 27700., 28552., 29404., 30256., 31224., 32080., 32936.,
      33792., 34780., 35640., 36500., 37360., 38368., 39232., 40096., 40960.,
      28100., 28968., 29836., 30704., 31688., 32560., 33432., 34304., 35308.,
      36184., 37060., 37936., 38960., 39840., 40720., 41600., 28500., 29384.,
      30268., 31152., 32152., 33040., 33928., 34816., 35836., 36728., 37620.,
      38512., 39552., 40448., 41344., 42240., 28900., 29800., 30700., 31600.,
      32616., 33520., 34424., 35328., 36364., 37272., 38180., 39088., 40144.,
      41056., 41968., 42880., 31300., 32296., 33292., 34288., 35400., 36400.,
      37400., 38400., 39532., 40536., 41540., 42544., 43696., 44704., 45712.,
      46720., 31700., 32712., 33724., 34736., 35864., 36880., 37896., 38912.,
      40060., 41080., 42100., 43120., 44288., 45312., 46336., 47360., 32100.,
      33128., 34156., 35184., 36328., 37360., 38392., 39424., 40588., 41624.,
      42660., 43696., 44880., 45920., 46960., 48000., 32500., 33544., 34588.,
      35632., 36792., 37840., 38888., 39936., 41116., 42168., 43220., 44272.,
      45472., 46528., 47584., 48640., 32900., 33960., 35020., 36080., 37256.,
      38320., 39384., 40448., 41644., 42712., 43780., 44848., 46064., 47136.,
      48208., 49280., 33300., 34376., 35452., 36528., 37720., 38800., 39880.,
      40960., 42172., 43256., 44340., 45424., 46656., 47744., 48832., 49920.,
      33700., 34792., 35884., 36976., 38184., 39280., 40376., 41472., 42700.,
      43800., 44900., 46000., 47248., 48352., 49456., 50560., 36100., 37288.,
      38476., 39664., 40968., 42160., 43352., 44544., 45868., 47064., 48260.,
      49456., 50800., 52000., 53200., 54400., 36500., 37704., 38908., 40112.,
      41432., 42640., 43848., 45056., 46396., 47608., 48820., 50032., 51392.,
      52608., 53824., 55040., 36900., 38120., 39340., 40560., 41896., 43120.,
      44344., 45568., 46924., 48152., 49380., 50608., 51984., 53216., 54448.,
      55680., 37300., 38536., 39772., 41008., 42360., 43600., 44840., 46080.,
      47452., 48696., 49940., 51184., 52576., 53824., 55072., 56320., 37700.,
      38952., 40204., 41456., 42824., 44080., 45336., 46592., 47980., 49240.,
      50500., 51760., 53168., 54432., 55696., 56960., 38100., 39368., 40636.,
      41904., 43288., 44560., 45832., 47104., 48508., 49784., 51060., 52336.,
      53760., 55040., 56320., 57600., 38500., 39784., 41068., 42352., 43752.,
      45040., 46328., 47616., 49036., 50328., 51620., 52912., 54352., 55648.,
      56944., 58240., 40900., 42280., 43660., 45040., 46536., 47920., 49304.,
      50688., 52204., 53592., 54980., 56368., 57904., 59296., 60688., 62080.,
      41300., 42696., 44092., 45488., 47000., 48400., 49800., 51200., 52732.,
      54136., 55540., 56944., 58496., 59904., 61312., 62720., 41700., 43112.,
      44524., 45936., 47464., 48880., 50296., 51712., 53260., 54680., 56100.,
      57520., 59088., 60512., 61936., 63360., 42100., 43528., 44956., 46384.,
      47928., 49360., 50792., 52224., 53788., 55224., 56660., 58096., 59680.,
      61120., 62560., 64000., 42500., 43944., 45388., 46832., 48392., 49840.,
      51288., 52736., 54316., 55768., 57220., 58672., 60272., 61728., 63184.,
      64640., 42900., 44360., 45820., 47280., 48856., 50320., 51784., 53248.,
      54844., 56312., 57780., 59248., 60864., 62336., 63808., 65280., 43300.,
      44776., 46252., 47728., 49320., 50800., 52280., 53760., 55372., 56856.,
      58340., 59824., 61456., 62944., 64432., 65920., 45700., 47272., 48844.,
      50416., 52104., 53680., 55256., 56832., 58540., 60120., 61700., 63280.,
      65008., 66592., 68176., 69760., 46100., 47688., 49276., 50864., 52568.,
      54160., 55752., 57344., 59068., 60664., 62260., 63856., 65600., 67200.,
      68800., 70400., 46500., 48104., 49708., 51312., 53032., 54640., 56248.,
      57856., 59596., 61208., 62820., 64432., 66192., 67808., 69424., 71040.,
      46900., 48520., 50140., 51760., 53496., 55120., 56744., 58368., 60124.,
      61752., 63380., 65008., 66784., 68416., 70048., 71680., 47300., 48936.,
      50572., 52208., 53960., 55600., 57240., 58880., 60652., 62296., 63940.,
      65584., 67376., 69024., 70672., 72320., 47700., 49352., 51004., 52656.,
      54424., 56080., 57736., 59392., 61180., 62840., 64500., 66160., 67968.,
      69632., 71296., 72960., 48100., 49768., 51436., 53104., 54888., 56560.,
      58232., 59904., 61708., 63384., 65060., 66736., 68560., 70240., 71920.,
      73600.};
  const std::array<int, 4> in_shape = {{1, 11, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3754., 3808., 4772., 4840., 3376., 3424., 3472., 4510., 4564., 5724.,
      5792., 4048., 4096., 4144., 5337., 5400., 6766., 6844., 4770., 4824.,
      4878., 6219., 6282., 7858., 7936., 5526., 5580., 5634., 7101., 7164.,
      8950., 9028., 6282., 6336., 6390., 2662., 2692., 3260., 3296., 2200.,
      2224., 2248., 3082., 3112., 3764., 3800., 2536., 2560., 2584.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      426.,  436.,  446.,  456.,  466.,  476.,  486.,  566.,  576.,  586.,
      596.,  606.,  616.,  626.,  706.,  716.,  726.,  736.,  746.,  756.,
      766.,  846.,  856.,  866.,  876.,  886.,  896.,  906.,  986.,  996.,
      1006., 1016., 1026., 1036., 1046., 1126., 1136., 1146., 1156., 1166.,
      1176., 1186., 1266., 1276., 1286., 1296., 1306., 1316., 1326.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7130.,  7508.,  7232.,  7616.,  9040.,  9544.,  9168.,  9680.,  6374.,
      6752.,  6464.,  6848.,  6554.,  6944.,  8558.,  9020.,  8660.,  9128.,
      10832., 11448., 10960., 11584., 7634.,  8096.,  7724.,  8192.,  7814.,
      8288.,  10107., 10674., 10224., 10800., 12776., 13532., 12920., 13688.,
      8973.,  9540.,  9072.,  9648.,  9171.,  9756.,  11745., 12438., 11862.,
      12564., 14792., 15716., 14936., 15872., 10359., 11052., 10458., 11160.,
      10557., 11268., 13383., 14202., 13500., 14328., 16808., 17900., 16952.,
      18056., 11745., 12564., 11844., 12672., 11943., 12780., 4862.,  5324.,
      4916.,  5384.,  5904.,  6520.,  5968.,  6592.,  3938.,  4400.,  3980.,
      4448.,  4022.,  4496.,  5618.,  6164.,  5672.,  6224.,  6800.,  7528.,
      6864.,  7600.,  4526.,  5072.,  4568.,  5120.,  4610.,  5168.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      728.,  852.,  744.,  872.,  760.,  892.,  776.,  912.,  792.,  932.,
      808.,  952.,  824.,  972.,  952.,  1132., 968.,  1152., 984.,  1172.,
      1000., 1192., 1016., 1212., 1032., 1232., 1048., 1252., 1176., 1412.,
      1192., 1432., 1208., 1452., 1224., 1472., 1240., 1492., 1256., 1512.,
      1272., 1532., 1400., 1692., 1416., 1712., 1432., 1732., 1448., 1752.,
      1464., 1772., 1480., 1792., 1496., 1812., 1624., 1972., 1640., 1992.,
      1656., 2012., 1672., 2032., 1688., 2052., 1704., 2072., 1720., 2092.,
      1848., 2252., 1864., 2272., 1880., 2292., 1896., 2312., 1912., 2332.,
      1928., 2352., 1944., 2372., 2072., 2532., 2088., 2552., 2104., 2572.,
      2120., 2592., 2136., 2612., 2152., 2632., 2168., 2652.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      13882., 14260., 14638., 15016., 14080., 14464., 14848., 15232., 17576.,
      18080., 18584., 19088., 17824., 18336., 18848., 19360., 12370., 12748.,
      13126., 13504., 12544., 12928., 13312., 13696., 12718., 13108., 13498.,
      13888., 16654., 17116., 17578., 18040., 16852., 17320., 17788., 18256.,
      21048., 21664., 22280., 22896., 21296., 21920., 22544., 23168., 14806.,
      15268., 15730., 16192., 14980., 15448., 15916., 16384., 15154., 15628.,
      16102., 16576., 19647., 20214., 20781., 21348., 19872., 20448., 21024.,
      21600., 24796., 25552., 26308., 27064., 25072., 25840., 26608., 27376.,
      17379., 17946., 18513., 19080., 17568., 18144., 18720., 19296., 17757.,
      18342., 18927., 19512., 22797., 23490., 24183., 24876., 23022., 23724.,
      24426., 25128., 28660., 29584., 30508., 31432., 28936., 29872., 30808.,
      31744., 20025., 20718., 21411., 22104., 20214., 20916., 21618., 22320.,
      20403., 21114., 21825., 22536., 25947., 26766., 27585., 28404., 26172.,
      27000., 27828., 28656., 32524., 33616., 34708., 35800., 32800., 33904.,
      35008., 36112., 22671., 23490., 24309., 25128., 22860., 23688., 24516.,
      25344., 23049., 23886., 24723., 25560., 9262.,  9724.,  10186., 10648.,
      9364.,  9832.,  10300., 10768., 11192., 11808., 12424., 13040., 11312.,
      11936., 12560., 13184., 7414.,  7876.,  8338.,  8800.,  7492.,  7960.,
      8428.,  8896.,  7570.,  8044.,  8518.,  8992.,  10690., 11236., 11782.,
      12328., 10792., 11344., 11896., 12448., 12872., 13600., 14328., 15056.,
      12992., 13728., 14464., 15200., 8506.,  9052.,  9598.,  10144., 8584.,
      9136.,  9688.,  10240., 8662.,  9220.,  9778.,  10336.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1332., 1456., 1580., 1704., 1360., 1488., 1616., 1744., 1388., 1520.,
      1652., 1784., 1416., 1552., 1688., 1824., 1444., 1584., 1724., 1864.,
      1472., 1616., 1760., 1904., 1500., 1648., 1796., 1944., 1724., 1904.,
      2084., 2264., 1752., 1936., 2120., 2304., 1780., 1968., 2156., 2344.,
      1808., 2000., 2192., 2384., 1836., 2032., 2228., 2424., 1864., 2064.,
      2264., 2464., 1892., 2096., 2300., 2504., 2116., 2352., 2588., 2824.,
      2144., 2384., 2624., 2864., 2172., 2416., 2660., 2904., 2200., 2448.,
      2696., 2944., 2228., 2480., 2732., 2984., 2256., 2512., 2768., 3024.,
      2284., 2544., 2804., 3064., 2508., 2800., 3092., 3384., 2536., 2832.,
      3128., 3424., 2564., 2864., 3164., 3464., 2592., 2896., 3200., 3504.,
      2620., 2928., 3236., 3544., 2648., 2960., 3272., 3584., 2676., 2992.,
      3308., 3624., 2900., 3248., 3596., 3944., 2928., 3280., 3632., 3984.,
      2956., 3312., 3668., 4024., 2984., 3344., 3704., 4064., 3012., 3376.,
      3740., 4104., 3040., 3408., 3776., 4144., 3068., 3440., 3812., 4184.,
      3292., 3696., 4100., 4504., 3320., 3728., 4136., 4544., 3348., 3760.,
      4172., 4584., 3376., 3792., 4208., 4624., 3404., 3824., 4244., 4664.,
      3432., 3856., 4280., 4704., 3460., 3888., 4316., 4744., 3684., 4144.,
      4604., 5064., 3712., 4176., 4640., 5104., 3740., 4208., 4676., 5144.,
      3768., 4240., 4712., 5184., 3796., 4272., 4748., 5224., 3824., 4304.,
      4784., 5264., 3852., 4336., 4820., 5304.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      14158., 15016., 14362., 15232., 17952., 19088., 18208., 19360., 12658.,
      13504., 12838., 13696., 13018., 13888., 17014., 18040., 17218., 18256.,
      21536., 22896., 21792., 23168., 15178., 16192., 15358., 16384., 15538.,
      16576., 20097., 21348., 20331., 21600., 25408., 27064., 25696., 27376.,
      17847., 19080., 18045., 19296., 18243., 19512., 23373., 24876., 23607.,
      25128., 29440., 31432., 29728., 31744., 20619., 22104., 20817., 22320.,
      21015., 22536., 26649., 28404., 26883., 28656., 33472., 35800., 33760.,
      36112., 23391., 25128., 23589., 25344., 23787., 25560., 9670.,  10648.,
      9778.,  10768., 11744., 13040., 11872., 13184., 7834.,  8800.,  7918.,
      8896.,  8002.,  8992.,  11182., 12328., 11290., 12448., 13536., 15056.,
      13664., 15200., 9010.,  10144., 9094.,  10240., 9178.,  10336.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1440., 1704., 1472., 1744., 1504., 1784., 1536., 1824., 1568., 1864.,
      1600., 1904., 1632., 1944., 1888., 2264., 1920., 2304., 1952., 2344.,
      1984., 2384., 2016., 2424., 2048., 2464., 2080., 2504., 2336., 2824.,
      2368., 2864., 2400., 2904., 2432., 2944., 2464., 2984., 2496., 3024.,
      2528., 3064., 2784., 3384., 2816., 3424., 2848., 3464., 2880., 3504.,
      2912., 3544., 2944., 3584., 2976., 3624., 3232., 3944., 3264., 3984.,
      3296., 4024., 3328., 4064., 3360., 4104., 3392., 4144., 3424., 4184.,
      3680., 4504., 3712., 4544., 3744., 4584., 3776., 4624., 3808., 4664.,
      3840., 4704., 3872., 4744., 4128., 5064., 4160., 5104., 4192., 5144.,
      4224., 5184., 4256., 5224., 4288., 5264., 4320., 5304.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      27566., 28316., 29276., 30032., 27962., 28724., 29696., 30464., 34904.,
      35904., 37168., 38176., 35400., 36416., 37696., 38720., 24566., 25316.,
      26252., 27008., 24914., 25676., 26624., 27392., 25262., 26036., 26996.,
      27776., 33110., 34028., 35156., 36080., 33506., 34436., 35576., 36512.,
      41848., 43072., 44560., 45792., 42344., 43584., 45088., 46336., 29438.,
      30356., 31460., 32384., 29786., 30716., 31832., 32768., 30134., 31076.,
      32204., 33152., 39069., 40194., 41562., 42696., 39519., 40662., 42048.,
      43200., 49316., 50816., 52616., 54128., 49868., 51392., 53216., 54752.,
      34569., 35694., 37026., 38160., 34947., 36090., 37440., 38592., 35325.,
      36486., 37854., 39024., 45369., 46746., 48366., 49752., 45819., 47214.,
      48852., 50256., 57044., 58880., 61016., 62864., 57596., 59456., 61616.,
      63488., 39861., 41238., 42822., 44208., 40239., 41634., 43236., 44640.,
      40617., 42030., 43650., 45072., 51669., 53298., 55170., 56808., 52119.,
      53766., 55656., 57312., 64772., 66944., 69416., 71600., 65324., 67520.,
      70016., 72224., 45153., 46782., 48618., 50256., 45531., 47178., 49032.,
      50688., 45909., 47574., 49446., 51120., 18422., 19340., 20372., 21296.,
      18626., 19556., 20600., 21536., 22264., 23488., 24848., 26080., 22504.,
      23744., 25120., 26368., 14750., 15668., 16676., 17600., 14906., 15836.,
      16856., 17792., 15062., 16004., 17036., 17984., 21278., 22364., 23564.,
      24656., 21482., 22580., 23792., 24896., 25624., 27072., 28656., 30112.,
      25864., 27328., 28928., 30400., 16934., 18020., 19196., 20288., 17090.,
      18188., 19376., 20480., 17246., 18356., 19556., 20672.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2636., 2880.,  3160., 3408.,  2692., 2944.,  3232., 3488.,  2748., 3008.,
      3304., 3568.,  2804., 3072.,  3376., 3648.,  2860., 3136.,  3448., 3728.,
      2916., 3200.,  3520., 3808.,  2972., 3264.,  3592., 3888.,  3420., 3776.,
      4168., 4528.,  3476., 3840.,  4240., 4608.,  3532., 3904.,  4312., 4688.,
      3588., 3968.,  4384., 4768.,  3644., 4032.,  4456., 4848.,  3700., 4096.,
      4528., 4928.,  3756., 4160.,  4600., 5008.,  4204., 4672.,  5176., 5648.,
      4260., 4736.,  5248., 5728.,  4316., 4800.,  5320., 5808.,  4372., 4864.,
      5392., 5888.,  4428., 4928.,  5464., 5968.,  4484., 4992.,  5536., 6048.,
      4540., 5056.,  5608., 6128.,  4988., 5568.,  6184., 6768.,  5044., 5632.,
      6256., 6848.,  5100., 5696.,  6328., 6928.,  5156., 5760.,  6400., 7008.,
      5212., 5824.,  6472., 7088.,  5268., 5888.,  6544., 7168.,  5324., 5952.,
      6616., 7248.,  5772., 6464.,  7192., 7888.,  5828., 6528.,  7264., 7968.,
      5884., 6592.,  7336., 8048.,  5940., 6656.,  7408., 8128.,  5996., 6720.,
      7480., 8208.,  6052., 6784.,  7552., 8288.,  6108., 6848.,  7624., 8368.,
      6556., 7360.,  8200., 9008.,  6612., 7424.,  8272., 9088.,  6668., 7488.,
      8344., 9168.,  6724., 7552.,  8416., 9248.,  6780., 7616.,  8488., 9328.,
      6836., 7680.,  8560., 9408.,  6892., 7744.,  8632., 9488.,  7340., 8256.,
      9208., 10128., 7396., 8320.,  9280., 10208., 7452., 8384.,  9352., 10288.,
      7508., 8448.,  9424., 10368., 7564., 8512.,  9496., 10448., 7620., 8576.,
      9568., 10528., 7676., 8640.,  9640., 10608.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      54382.,  55132.,  55882.,  56632.,  57796.,  58552.,  59308.,  60064.,
      55162.,  55924.,  56686.,  57448.,  58624.,  59392.,  60160.,  60928.,
      68808.,  69808.,  70808.,  71808.,  73328.,  74336.,  75344.,  76352.,
      69784.,  70800.,  71816.,  72832.,  74368.,  75392.,  76416.,  77440.,
      48382.,  49132.,  49882.,  50632.,  51748.,  52504.,  53260.,  54016.,
      49066.,  49828.,  50590.,  51352.,  52480.,  53248.,  54016.,  54784.,
      49750.,  50524.,  51298.,  52072.,  53212.,  53992.,  54772.,  55552.,
      65302.,  66220.,  67138.,  68056.,  69388.,  70312.,  71236.,  72160.,
      66082.,  67012.,  67942.,  68872.,  70216.,  71152.,  72088.,  73024.,
      82472.,  83696.,  84920.,  86144.,  87888.,  89120.,  90352.,  91584.,
      83448.,  84688.,  85928.,  87168.,  88928.,  90176.,  91424.,  92672.,
      57958.,  58876.,  59794.,  60712.,  61996.,  62920.,  63844.,  64768.,
      58642.,  59572.,  60502.,  61432.,  62728.,  63664.,  64600.,  65536.,
      59326.,  60268.,  61210.,  62152.,  63460.,  64408.,  65356.,  66304.,
      77013.,  78138.,  79263.,  80388.,  81990.,  83124.,  84258.,  85392.,
      77895.,  79038.,  80181.,  81324.,  82944.,  84096.,  85248.,  86400.,
      97132.,  98632.,  100132., 101632., 103720., 105232., 106744., 108256.,
      98212.,  99736.,  101260., 102784., 104896., 106432., 107968., 109504.,
      68013.,  69138.,  70263.,  71388.,  72918.,  74052.,  75186.,  76320.,
      68751.,  69894.,  71037.,  72180.,  73728.,  74880.,  76032.,  77184.,
      69489.,  70650.,  71811.,  72972.,  74538.,  75708.,  76878.,  78048.,
      89361.,  90738.,  92115.,  93492.,  95346.,  96732.,  98118.,  99504.,
      90243.,  91638.,  93033.,  94428.,  96300.,  97704.,  99108.,  100512.,
      112252., 114088., 115924., 117760., 120184., 122032., 123880., 125728.,
      113332., 115192., 117052., 118912., 121360., 123232., 125104., 126976.,
      78345.,  79722.,  81099.,  82476.,  84258.,  85644.,  87030.,  88416.,
      79083.,  80478.,  81873.,  83268.,  85068.,  86472.,  87876.,  89280.,
      79821.,  81234.,  82647.,  84060.,  85878.,  87300.,  88722.,  90144.,
      101709., 103338., 104967., 106596., 108702., 110340., 111978., 113616.,
      102591., 104238., 105885., 107532., 109656., 111312., 112968., 114624.,
      127372., 129544., 131716., 133888., 136648., 138832., 141016., 143200.,
      128452., 130648., 132844., 135040., 137824., 140032., 142240., 144448.,
      88677.,  90306.,  91935.,  93564.,  95598.,  97236.,  98874.,  100512.,
      89415.,  91062.,  92709.,  94356.,  96408.,  98064.,  99720.,  101376.,
      90153.,  91818.,  93483.,  95148.,  97218.,  98892.,  100566., 102240.,
      35926.,  36844.,  37762.,  38680.,  39820.,  40744.,  41668.,  42592.,
      36322.,  37252.,  38182.,  39112.,  40264.,  41200.,  42136.,  43072.,
      43304.,  44528.,  45752.,  46976.,  48464.,  49696.,  50928.,  52160.,
      43768.,  45008.,  46248.,  47488.,  48992.,  50240.,  51488.,  52736.,
      28582.,  29500.,  30418.,  31336.,  32428.,  33352.,  34276.,  35200.,
      28882.,  29812.,  30742.,  31672.,  32776.,  33712.,  34648.,  35584.,
      29182.,  30124.,  31066.,  32008.,  33124.,  34072.,  35020.,  35968.,
      41470.,  42556.,  43642.,  44728.,  46036.,  47128.,  48220.,  49312.,
      41866.,  42964.,  44062.,  45160.,  46480.,  47584.,  48688.,  49792.,
      49800.,  51248.,  52696.,  54144.,  55856.,  57312.,  58768.,  60224.,
      50264.,  51728.,  53192.,  54656.,  56384.,  57856.,  59328.,  60800.,
      32782.,  33868.,  34954.,  36040.,  37300.,  38392.,  39484.,  40576.,
      33082.,  34180.,  35278.,  36376.,  37648.,  38752.,  39856.,  40960.,
      33382.,  34492.,  35602.,  36712.,  37996.,  39112.,  40228.,  41344.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5028.,  5272.,  5516.,  5760.,  6072.,  6320.,  6568.,  6816.,  5132.,
      5384.,  5636.,  5888.,  6208.,  6464.,  6720.,  6976.,  5236.,  5496.,
      5756.,  6016.,  6344.,  6608.,  6872.,  7136.,  5340.,  5608.,  5876.,
      6144.,  6480.,  6752.,  7024.,  7296.,  5444.,  5720.,  5996.,  6272.,
      6616.,  6896.,  7176.,  7456.,  5548.,  5832.,  6116.,  6400.,  6752.,
      7040.,  7328.,  7616.,  5652.,  5944.,  6236.,  6528.,  6888.,  7184.,
      7480.,  7776.,  6484.,  6840.,  7196.,  7552.,  7976.,  8336.,  8696.,
      9056.,  6588.,  6952.,  7316.,  7680.,  8112.,  8480.,  8848.,  9216.,
      6692.,  7064.,  7436.,  7808.,  8248.,  8624.,  9000.,  9376.,  6796.,
      7176.,  7556.,  7936.,  8384.,  8768.,  9152.,  9536.,  6900.,  7288.,
      7676.,  8064.,  8520.,  8912.,  9304.,  9696.,  7004.,  7400.,  7796.,
      8192.,  8656.,  9056.,  9456.,  9856.,  7108.,  7512.,  7916.,  8320.,
      8792.,  9200.,  9608.,  10016., 7940.,  8408.,  8876.,  9344.,  9880.,
      10352., 10824., 11296., 8044.,  8520.,  8996.,  9472.,  10016., 10496.,
      10976., 11456., 8148.,  8632.,  9116.,  9600.,  10152., 10640., 11128.,
      11616., 8252.,  8744.,  9236.,  9728.,  10288., 10784., 11280., 11776.,
      8356.,  8856.,  9356.,  9856.,  10424., 10928., 11432., 11936., 8460.,
      8968.,  9476.,  9984.,  10560., 11072., 11584., 12096., 8564.,  9080.,
      9596.,  10112., 10696., 11216., 11736., 12256., 9396.,  9976.,  10556.,
      11136., 11784., 12368., 12952., 13536., 9500.,  10088., 10676., 11264.,
      11920., 12512., 13104., 13696., 9604.,  10200., 10796., 11392., 12056.,
      12656., 13256., 13856., 9708.,  10312., 10916., 11520., 12192., 12800.,
      13408., 14016., 9812.,  10424., 11036., 11648., 12328., 12944., 13560.,
      14176., 9916.,  10536., 11156., 11776., 12464., 13088., 13712., 14336.,
      10020., 10648., 11276., 11904., 12600., 13232., 13864., 14496., 10852.,
      11544., 12236., 12928., 13688., 14384., 15080., 15776., 10956., 11656.,
      12356., 13056., 13824., 14528., 15232., 15936., 11060., 11768., 12476.,
      13184., 13960., 14672., 15384., 16096., 11164., 11880., 12596., 13312.,
      14096., 14816., 15536., 16256., 11268., 11992., 12716., 13440., 14232.,
      14960., 15688., 16416., 11372., 12104., 12836., 13568., 14368., 15104.,
      15840., 16576., 11476., 12216., 12956., 13696., 14504., 15248., 15992.,
      16736., 12308., 13112., 13916., 14720., 15592., 16400., 17208., 18016.,
      12412., 13224., 14036., 14848., 15728., 16544., 17360., 18176., 12516.,
      13336., 14156., 14976., 15864., 16688., 17512., 18336., 12620., 13448.,
      14276., 15104., 16000., 16832., 17664., 18496., 12724., 13560., 14396.,
      15232., 16136., 16976., 17816., 18656., 12828., 13672., 14516., 15360.,
      16272., 17120., 17968., 18816., 12932., 13784., 14636., 15488., 16408.,
      17264., 18120., 18976., 13764., 14680., 15596., 16512., 17496., 18416.,
      19336., 20256., 13868., 14792., 15716., 16640., 17632., 18560., 19488.,
      20416., 13972., 14904., 15836., 16768., 17768., 18704., 19640., 20576.,
      14076., 15016., 15956., 16896., 17904., 18848., 19792., 20736., 14180.,
      15128., 16076., 17024., 18040., 18992., 19944., 20896., 14284., 15240.,
      16196., 17152., 18176., 19136., 20096., 21056., 14388., 15352., 16316.,
      17280., 18312., 19280., 20248., 21216.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      54934.,  56632.,  58342.,  60064.,  55726.,  57448.,  59182.,  60928.,
      69560.,  71808.,  74072.,  76352.,  70552.,  72832.,  75128.,  77440.,
      48958.,  50632.,  52318.,  54016.,  49654.,  51352.,  53062.,  54784.,
      50350.,  52072.,  53806.,  55552.,  66022.,  68056.,  70102.,  72160.,
      66814.,  68872.,  70942.,  73024.,  83448.,  86144.,  88856.,  91584.,
      84440.,  87168.,  89912.,  92672.,  58702.,  60712.,  62734.,  64768.,
      59398.,  61432.,  63478.,  65536.,  60094.,  62152.,  64222.,  66304.,
      77913.,  80388.,  82881.,  85392.,  78813.,  81324.,  83853.,  86400.,
      98356.,  101632., 104932., 108256., 99460.,  102784., 106132., 109504.,
      68949.,  71388.,  73845.,  76320.,  69705.,  72180.,  74673.,  77184.,
      70461.,  72972.,  75501.,  78048.,  90513.,  93492.,  96489.,  99504.,
      91413.,  94428.,  97461.,  100512., 113812., 117760., 121732., 125728.,
      114916., 118912., 122932., 126976., 79533.,  82476.,  85437.,  88416.,
      80289.,  83268.,  86265.,  89280.,  81045.,  84060.,  87093.,  90144.,
      103113., 106596., 110097., 113616., 104013., 107532., 111069., 114624.,
      129268., 133888., 138532., 143200., 130372., 135040., 139732., 144448.,
      90117.,  93564.,  97029.,  100512., 90873.,  94356.,  97857.,  101376.,
      91629.,  95148.,  98685.,  102240., 36742.,  38680.,  40630.,  42592.,
      37150.,  39112.,  41086.,  43072.,  44408.,  46976.,  49560.,  52160.,
      44888.,  47488.,  50104.,  52736.,  29422.,  31336.,  33262.,  35200.,
      29734.,  31672.,  33622.,  35584.,  30046.,  32008.,  33982.,  35968.,
      42454.,  44728.,  47014.,  49312.,  42862.,  45160.,  47470.,  49792.,
      51128.,  54144.,  57176.,  60224.,  51608.,  54656.,  57720.,  60800.,
      33790.,  36040.,  38302.,  40576.,  34102.,  36376.,  38662.,  40960.,
      34414.,  36712.,  39022.,  41344.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5244.,  5760.,  6284.,  6816.,  5356.,  5888.,  6428.,  6976.,  5468.,
      6016.,  6572.,  7136.,  5580.,  6144.,  6716.,  7296.,  5692.,  6272.,
      6860.,  7456.,  5804.,  6400.,  7004.,  7616.,  5916.,  6528.,  7148.,
      7776.,  6812.,  7552.,  8300.,  9056.,  6924.,  7680.,  8444.,  9216.,
      7036.,  7808.,  8588.,  9376.,  7148.,  7936.,  8732.,  9536.,  7260.,
      8064.,  8876.,  9696.,  7372.,  8192.,  9020.,  9856.,  7484.,  8320.,
      9164.,  10016., 8380.,  9344.,  10316., 11296., 8492.,  9472.,  10460.,
      11456., 8604.,  9600.,  10604., 11616., 8716.,  9728.,  10748., 11776.,
      8828.,  9856.,  10892., 11936., 8940.,  9984.,  11036., 12096., 9052.,
      10112., 11180., 12256., 9948.,  11136., 12332., 13536., 10060., 11264.,
      12476., 13696., 10172., 11392., 12620., 13856., 10284., 11520., 12764.,
      14016., 10396., 11648., 12908., 14176., 10508., 11776., 13052., 14336.,
      10620., 11904., 13196., 14496., 11516., 12928., 14348., 15776., 11628.,
      13056., 14492., 15936., 11740., 13184., 14636., 16096., 11852., 13312.,
      14780., 16256., 11964., 13440., 14924., 16416., 12076., 13568., 15068.,
      16576., 12188., 13696., 15212., 16736., 13084., 14720., 16364., 18016.,
      13196., 14848., 16508., 18176., 13308., 14976., 16652., 18336., 13420.,
      15104., 16796., 18496., 13532., 15232., 16940., 18656., 13644., 15360.,
      17084., 18816., 13756., 15488., 17228., 18976., 14652., 16512., 18380.,
      20256., 14764., 16640., 18524., 20416., 14876., 16768., 18668., 20576.,
      14988., 16896., 18812., 20736., 15100., 17024., 18956., 20896., 15212.,
      17152., 19100., 21056., 15324., 17280., 19244., 21216.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      108374., 109868., 111764., 113264., 115178., 116684., 118616., 120128.,
      109934., 111452., 113372., 114896., 116834., 118364., 120320., 121856.,
      137128., 139120., 141616., 143616., 146136., 148144., 150688., 152704.,
      139080., 141104., 143632., 145664., 148216., 150256., 152832., 154880.,
      96422.,  97916.,  99764.,  101264., 103130., 104636., 106520., 108032.,
      97790.,  99308.,  101180., 102704., 104594., 106124., 108032., 109568.,
      99158.,  100700., 102596., 104144., 106058., 107612., 109544., 111104.,
      130214., 132044., 134276., 136112., 138362., 140204., 142472., 144320.,
      131774., 133628., 135884., 137744., 140018., 141884., 144176., 146048.,
      164456., 166896., 169840., 172288., 175256., 177712., 180704., 183168.,
      166408., 168880., 171856., 174336., 177336., 179824., 182848., 185344.,
      115574., 117404., 119588., 121424., 123626., 125468., 127688., 129536.,
      116942., 118796., 121004., 122864., 125090., 126956., 129200., 131072.,
      118310., 120188., 122420., 124304., 126554., 128444., 130712., 132608.,
      153585., 155826., 158526., 160776., 163503., 165762., 168516., 170784.,
      155349., 157626., 160362., 162648., 165411., 167706., 170496., 172800.,
      193724., 196712., 200264., 203264., 206852., 209864., 213488., 216512.,
      195884., 198920., 202520., 205568., 209204., 212264., 215936., 219008.,
      135657., 137898., 140526., 142776., 145431., 147690., 150372., 152640.,
      137133., 139410., 142074., 144360., 147051., 149346., 152064., 154368.,
      138609., 140922., 143622., 145944., 148671., 151002., 153756., 156096.,
      178281., 181026., 184230., 186984., 190215., 192978., 196236., 199008.,
      180045., 182826., 186066., 188856., 192123., 194922., 198216., 201024.,
      223964., 227624., 231848., 235520., 239780., 243464., 247760., 251456.,
      226124., 229832., 234104., 237824., 242132., 245864., 250208., 253952.,
      156321., 159066., 162198., 164952., 168111., 170874., 174060., 176832.,
      157797., 160578., 163746., 166536., 169731., 172530., 175752., 178560.,
      159273., 162090., 165294., 168120., 171351., 174186., 177444., 180288.,
      202977., 206226., 209934., 213192., 216927., 220194., 223956., 227232.,
      204741., 208026., 211770., 215064., 218835., 222138., 225936., 229248.,
      254204., 258536., 263432., 267776., 272708., 277064., 282032., 286400.,
      256364., 260744., 265688., 270080., 275060., 279464., 284480., 288896.,
      176985., 180234., 183870., 187128., 190791., 194058., 197748., 201024.,
      178461., 181746., 185418., 188712., 192411., 195714., 199440., 202752.,
      179937., 183258., 186966., 190296., 194031., 197370., 201132., 204480.,
      71654.,  73484.,  75524.,  77360.,  79418.,  81260.,  83336.,  85184.,
      72446.,  74300.,  76364.,  78224.,  80306.,  82172.,  84272.,  86144.,
      86376.,  88816.,  91504.,  93952.,  96664.,  99120.,  101856., 104320.,
      87304.,  89776.,  92496.,  94976.,  97720.,  100208., 102976., 105472.,
      57014.,  58844.,  60836.,  62672.,  64682.,  66524.,  68552.,  70400.,
      57614.,  59468.,  61484.,  63344.,  65378.,  67244.,  69296.,  71168.,
      58214.,  60092.,  62132.,  64016.,  66074.,  67964.,  70040.,  71936.,
      82742.,  84908.,  87284.,  89456.,  91850.,  94028.,  96440.,  98624.,
      83534.,  85724.,  88124.,  90320.,  92738.,  94940.,  97376.,  99584.,
      99368.,  102256., 105392., 108288., 111448., 114352., 117536., 120448.,
      100296., 103216., 106384., 109312., 112504., 115440., 118656., 121600.,
      65414.,  67580.,  69908.,  72080.,  74426.,  76604.,  78968.,  81152.,
      66014.,  68204.,  70556.,  72752.,  75122.,  77324.,  79712.,  81920.,
      66614.,  68828.,  71204.,  73424.,  75818.,  78044.,  80456.,  82688.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10004., 10488., 11032., 11520., 12076., 12568., 13136., 13632., 10212.,
      10712., 11272., 11776., 12348., 12856., 13440., 13952., 10420., 10936.,
      11512., 12032., 12620., 13144., 13744., 14272., 10628., 11160., 11752.,
      12288., 12892., 13432., 14048., 14592., 10836., 11384., 11992., 12544.,
      13164., 13720., 14352., 14912., 11044., 11608., 12232., 12800., 13436.,
      14008., 14656., 15232., 11252., 11832., 12472., 13056., 13708., 14296.,
      14960., 15552., 12916., 13624., 14392., 15104., 15884., 16600., 17392.,
      18112., 13124., 13848., 14632., 15360., 16156., 16888., 17696., 18432.,
      13332., 14072., 14872., 15616., 16428., 17176., 18000., 18752., 13540.,
      14296., 15112., 15872., 16700., 17464., 18304., 19072., 13748., 14520.,
      15352., 16128., 16972., 17752., 18608., 19392., 13956., 14744., 15592.,
      16384., 17244., 18040., 18912., 19712., 14164., 14968., 15832., 16640.,
      17516., 18328., 19216., 20032., 15828., 16760., 17752., 18688., 19692.,
      20632., 21648., 22592., 16036., 16984., 17992., 18944., 19964., 20920.,
      21952., 22912., 16244., 17208., 18232., 19200., 20236., 21208., 22256.,
      23232., 16452., 17432., 18472., 19456., 20508., 21496., 22560., 23552.,
      16660., 17656., 18712., 19712., 20780., 21784., 22864., 23872., 16868.,
      17880., 18952., 19968., 21052., 22072., 23168., 24192., 17076., 18104.,
      19192., 20224., 21324., 22360., 23472., 24512., 18740., 19896., 21112.,
      22272., 23500., 24664., 25904., 27072., 18948., 20120., 21352., 22528.,
      23772., 24952., 26208., 27392., 19156., 20344., 21592., 22784., 24044.,
      25240., 26512., 27712., 19364., 20568., 21832., 23040., 24316., 25528.,
      26816., 28032., 19572., 20792., 22072., 23296., 24588., 25816., 27120.,
      28352., 19780., 21016., 22312., 23552., 24860., 26104., 27424., 28672.,
      19988., 21240., 22552., 23808., 25132., 26392., 27728., 28992., 21652.,
      23032., 24472., 25856., 27308., 28696., 30160., 31552., 21860., 23256.,
      24712., 26112., 27580., 28984., 30464., 31872., 22068., 23480., 24952.,
      26368., 27852., 29272., 30768., 32192., 22276., 23704., 25192., 26624.,
      28124., 29560., 31072., 32512., 22484., 23928., 25432., 26880., 28396.,
      29848., 31376., 32832., 22692., 24152., 25672., 27136., 28668., 30136.,
      31680., 33152., 22900., 24376., 25912., 27392., 28940., 30424., 31984.,
      33472., 24564., 26168., 27832., 29440., 31116., 32728., 34416., 36032.,
      24772., 26392., 28072., 29696., 31388., 33016., 34720., 36352., 24980.,
      26616., 28312., 29952., 31660., 33304., 35024., 36672., 25188., 26840.,
      28552., 30208., 31932., 33592., 35328., 36992., 25396., 27064., 28792.,
      30464., 32204., 33880., 35632., 37312., 25604., 27288., 29032., 30720.,
      32476., 34168., 35936., 37632., 25812., 27512., 29272., 30976., 32748.,
      34456., 36240., 37952., 27476., 29304., 31192., 33024., 34924., 36760.,
      38672., 40512., 27684., 29528., 31432., 33280., 35196., 37048., 38976.,
      40832., 27892., 29752., 31672., 33536., 35468., 37336., 39280., 41152.,
      28100., 29976., 31912., 33792., 35740., 37624., 39584., 41472., 28308.,
      30200., 32152., 34048., 36012., 37912., 39888., 41792., 28516., 30424.,
      32392., 34304., 36284., 38200., 40192., 42112., 28724., 30648., 32632.,
      34560., 36556., 38488., 40496., 42432.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x11x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      215254., 216748., 218242., 219736., 222028., 223528., 225028., 226528.,
      228850., 230356., 231862., 233368., 235720., 237232., 238744., 240256.,
      218350., 219868., 221386., 222904., 225220., 226744., 228268., 229792.,
      232138., 233668., 235198., 236728., 239104., 240640., 242176., 243712.,
      272264., 274256., 276248., 278240., 281232., 283232., 285232., 287232.,
      290264., 292272., 294280., 296288., 299360., 301376., 303392., 305408.,
      276136., 278160., 280184., 282208., 285232., 287264., 289296., 291328.,
      294392., 296432., 298472., 300512., 303616., 305664., 307712., 309760.,
      191350., 192844., 194338., 195832., 198028., 199528., 201028., 202528.,
      204754., 206260., 207766., 209272., 211528., 213040., 214552., 216064.,
      194062., 195580., 197098., 198616., 200836., 202360., 203884., 205408.,
      207658., 209188., 210718., 212248., 214528., 216064., 217600., 219136.,
      196774., 198316., 199858., 201400., 203644., 205192., 206740., 208288.,
      210562., 212116., 213670., 215224., 217528., 219088., 220648., 222208.,
      258598., 260428., 262258., 264088., 266716., 268552., 270388., 272224.,
      274882., 276724., 278566., 280408., 283096., 284944., 286792., 288640.,
      261694., 263548., 265402., 267256., 269908., 271768., 273628., 275488.,
      278170., 280036., 281902., 283768., 286480., 288352., 290224., 292096.,
      326472., 328912., 331352., 333792., 337232., 339680., 342128., 344576.,
      348056., 350512., 352968., 355424., 358944., 361408., 363872., 366336.,
      330344., 332816., 335288., 337760., 341232., 343712., 346192., 348672.,
      352184., 354672., 357160., 359648., 363200., 365696., 368192., 370688.,
      229318., 231148., 232978., 234808., 237340., 239176., 241012., 242848.,
      245410., 247252., 249094., 250936., 253528., 255376., 257224., 259072.,
      232030., 233884., 235738., 237592., 240148., 242008., 243868., 245728.,
      248314., 250180., 252046., 253912., 256528., 258400., 260272., 262144.,
      234742., 236620., 238498., 240376., 242956., 244840., 246724., 248608.,
      251218., 253108., 254998., 256888., 259528., 261424., 263320., 265216.,
      304929., 307170., 309411., 311652., 314802., 317052., 319302., 321552.,
      324747., 327006., 329265., 331524., 334764., 337032., 339300., 341568.,
      308421., 310698., 312975., 315252., 318438., 320724., 323010., 325296.,
      328527., 330822., 333117., 335412., 338688., 340992., 343296., 345600.,
      384460., 387448., 390436., 393424., 397528., 400528., 403528., 406528.,
      410692., 413704., 416716., 419728., 423952., 426976., 430000., 433024.,
      388732., 391768., 394804., 397840., 401992., 405040., 408088., 411136.,
      415348., 418408., 421468., 424528., 428800., 431872., 434944., 438016.,
      269073., 271314., 273555., 275796., 278802., 281052., 283302., 285552.,
      288603., 290862., 293121., 295380., 298476., 300744., 303012., 305280.,
      271989., 274266., 276543., 278820., 281862., 284148., 286434., 288720.,
      291807., 294102., 296397., 298692., 301824., 304128., 306432., 308736.,
      274905., 277218., 279531., 281844., 284922., 287244., 289566., 291888.,
      295011., 297342., 299673., 302004., 305172., 307512., 309852., 312192.,
      353817., 356562., 359307., 362052., 365706., 368460., 371214., 373968.,
      377667., 380430., 383193., 385956., 389700., 392472., 395244., 398016.,
      357309., 360090., 362871., 365652., 369342., 372132., 374922., 377712.,
      381447., 384246., 387045., 389844., 393624., 396432., 399240., 402048.,
      444268., 447928., 451588., 455248., 460024., 463696., 467368., 471040.,
      475876., 479560., 483244., 486928., 491824., 495520., 499216., 502912.,
      448540., 452248., 455956., 459664., 464488., 468208., 471928., 475648.,
      480532., 484264., 487996., 491728., 496672., 500416., 504160., 507904.,
      309897., 312642., 315387., 318132., 321642., 324396., 327150., 329904.,
      333459., 336222., 338985., 341748., 345348., 348120., 350892., 353664.,
      312813., 315594., 318375., 321156., 324702., 327492., 330282., 333072.,
      336663., 339462., 342261., 345060., 348696., 351504., 354312., 357120.,
      315729., 318546., 321363., 324180., 327762., 330588., 333414., 336240.,
      339867., 342702., 345537., 348372., 352044., 354888., 357732., 360576.,
      402705., 405954., 409203., 412452., 416610., 419868., 423126., 426384.,
      430587., 433854., 437121., 440388., 444636., 447912., 451188., 454464.,
      406197., 409482., 412767., 416052., 420246., 423540., 426834., 430128.,
      434367., 437670., 440973., 444276., 448560., 451872., 455184., 458496.,
      504076., 508408., 512740., 517072., 522520., 526864., 531208., 535552.,
      541060., 545416., 549772., 554128., 559696., 564064., 568432., 572800.,
      508348., 512728., 517108., 521488., 526984., 531376., 535768., 540160.,
      545716., 550120., 554524., 558928., 564544., 568960., 573376., 577792.,
      350721., 353970., 357219., 360468., 364482., 367740., 370998., 374256.,
      378315., 381582., 384849., 388116., 392220., 395496., 398772., 402048.,
      353637., 356922., 360207., 363492., 367542., 370836., 374130., 377424.,
      381519., 384822., 388125., 391428., 395568., 398880., 402192., 405504.,
      356553., 359874., 363195., 366516., 370602., 373932., 377262., 380592.,
      384723., 388062., 391401., 394740., 398916., 402264., 405612., 408960.,
      141478., 143308., 145138., 146968., 149212., 151048., 152884., 154720.,
      156994., 158836., 160678., 162520., 164824., 166672., 168520., 170368.,
      143038., 144892., 146746., 148600., 150868., 152728., 154588., 156448.,
      158746., 160612., 162478., 164344., 166672., 168544., 170416., 172288.,
      170312., 172752., 175192., 177632., 180560., 183008., 185456., 187904.,
      190872., 193328., 195784., 198240., 201248., 203712., 206176., 208640.,
      172136., 174608., 177080., 179552., 182512., 184992., 187472., 189952.,
      192952., 195440., 197928., 200416., 203456., 205952., 208448., 210944.,
      112198., 114028., 115858., 117688., 119836., 121672., 123508., 125344.,
      127522., 129364., 131206., 133048., 135256., 137104., 138952., 140800.,
      113374., 115228., 117082., 118936., 121108., 122968., 124828., 126688.,
      128890., 130756., 132622., 134488., 136720., 138592., 140464., 142336.,
      114550., 116428., 118306., 120184., 122380., 124264., 126148., 128032.,
      130258., 132148., 134038., 135928., 138184., 140080., 141976., 143872.,
      163318., 165484., 167650., 169816., 172396., 174568., 176740., 178912.,
      181522., 183700., 185878., 188056., 190696., 192880., 195064., 197248.,
      164878., 167068., 169258., 171448., 174052., 176248., 178444., 180640.,
      183274., 185476., 187678., 189880., 192544., 194752., 196960., 199168.,
      195848., 198736., 201624., 204512., 207888., 210784., 213680., 216576.,
      219992., 222896., 225800., 228704., 232160., 235072., 237984., 240896.,
      197672., 200592., 203512., 206432., 209840., 212768., 215696., 218624.,
      222072., 225008., 227944., 230880., 234368., 237312., 240256., 243200.,
      128662., 130828., 132994., 135160., 137644., 139816., 141988., 144160.,
      146674., 148852., 151030., 153208., 155752., 157936., 160120., 162304.,
      129838., 132028., 134218., 136408., 138916., 141112., 143308., 145504.,
      148042., 150244., 152446., 154648., 157216., 159424., 161632., 163840.,
      131014., 133228., 135442., 137656., 140188., 142408., 144628., 146848.,
      149410., 151636., 153862., 156088., 158680., 160912., 163144., 165376.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x11x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19524., 20008., 20492., 20976., 21576., 22064., 22552., 23040., 23660.,
      24152., 24644., 25136., 25776., 26272., 26768., 27264., 19924., 20424.,
      20924., 21424., 22040., 22544., 23048., 23552., 24188., 24696., 25204.,
      25712., 26368., 26880., 27392., 27904., 20324., 20840., 21356., 21872.,
      22504., 23024., 23544., 24064., 24716., 25240., 25764., 26288., 26960.,
      27488., 28016., 28544., 20724., 21256., 21788., 22320., 22968., 23504.,
      24040., 24576., 25244., 25784., 26324., 26864., 27552., 28096., 28640.,
      29184., 21124., 21672., 22220., 22768., 23432., 23984., 24536., 25088.,
      25772., 26328., 26884., 27440., 28144., 28704., 29264., 29824., 21524.,
      22088., 22652., 23216., 23896., 24464., 25032., 25600., 26300., 26872.,
      27444., 28016., 28736., 29312., 29888., 30464., 21924., 22504., 23084.,
      23664., 24360., 24944., 25528., 26112., 26828., 27416., 28004., 28592.,
      29328., 29920., 30512., 31104., 25124., 25832., 26540., 27248., 28072.,
      28784., 29496., 30208., 31052., 31768., 32484., 33200., 34064., 34784.,
      35504., 36224., 25524., 26248., 26972., 27696., 28536., 29264., 29992.,
      30720., 31580., 32312., 33044., 33776., 34656., 35392., 36128., 36864.,
      25924., 26664., 27404., 28144., 29000., 29744., 30488., 31232., 32108.,
      32856., 33604., 34352., 35248., 36000., 36752., 37504., 26324., 27080.,
      27836., 28592., 29464., 30224., 30984., 31744., 32636., 33400., 34164.,
      34928., 35840., 36608., 37376., 38144., 26724., 27496., 28268., 29040.,
      29928., 30704., 31480., 32256., 33164., 33944., 34724., 35504., 36432.,
      37216., 38000., 38784., 27124., 27912., 28700., 29488., 30392., 31184.,
      31976., 32768., 33692., 34488., 35284., 36080., 37024., 37824., 38624.,
      39424., 27524., 28328., 29132., 29936., 30856., 31664., 32472., 33280.,
      34220., 35032., 35844., 36656., 37616., 38432., 39248., 40064., 30724.,
      31656., 32588., 33520., 34568., 35504., 36440., 37376., 38444., 39384.,
      40324., 41264., 42352., 43296., 44240., 45184., 31124., 32072., 33020.,
      33968., 35032., 35984., 36936., 37888., 38972., 39928., 40884., 41840.,
      42944., 43904., 44864., 45824., 31524., 32488., 33452., 34416., 35496.,
      36464., 37432., 38400., 39500., 40472., 41444., 42416., 43536., 44512.,
      45488., 46464., 31924., 32904., 33884., 34864., 35960., 36944., 37928.,
      38912., 40028., 41016., 42004., 42992., 44128., 45120., 46112., 47104.,
      32324., 33320., 34316., 35312., 36424., 37424., 38424., 39424., 40556.,
      41560., 42564., 43568., 44720., 45728., 46736., 47744., 32724., 33736.,
      34748., 35760., 36888., 37904., 38920., 39936., 41084., 42104., 43124.,
      44144., 45312., 46336., 47360., 48384., 33124., 34152., 35180., 36208.,
      37352., 38384., 39416., 40448., 41612., 42648., 43684., 44720., 45904.,
      46944., 47984., 49024., 36324., 37480., 38636., 39792., 41064., 42224.,
      43384., 44544., 45836., 47000., 48164., 49328., 50640., 51808., 52976.,
      54144., 36724., 37896., 39068., 40240., 41528., 42704., 43880., 45056.,
      46364., 47544., 48724., 49904., 51232., 52416., 53600., 54784., 37124.,
      38312., 39500., 40688., 41992., 43184., 44376., 45568., 46892., 48088.,
      49284., 50480., 51824., 53024., 54224., 55424., 37524., 38728., 39932.,
      41136., 42456., 43664., 44872., 46080., 47420., 48632., 49844., 51056.,
      52416., 53632., 54848., 56064., 37924., 39144., 40364., 41584., 42920.,
      44144., 45368., 46592., 47948., 49176., 50404., 51632., 53008., 54240.,
      55472., 56704., 38324., 39560., 40796., 42032., 43384., 44624., 45864.,
      47104., 48476., 49720., 50964., 52208., 53600., 54848., 56096., 57344.,
      38724., 39976., 41228., 42480., 43848., 45104., 46360., 47616., 49004.,
      50264., 51524., 52784., 54192., 55456., 56720., 57984., 41924., 43304.,
      44684., 46064., 47560., 48944., 50328., 51712., 53228., 54616., 56004.,
      57392., 58928., 60320., 61712., 63104., 42324., 43720., 45116., 46512.,
      48024., 49424., 50824., 52224., 53756., 55160., 56564., 57968., 59520.,
      60928., 62336., 63744., 42724., 44136., 45548., 46960., 48488., 49904.,
      51320., 52736., 54284., 55704., 57124., 58544., 60112., 61536., 62960.,
      64384., 43124., 44552., 45980., 47408., 48952., 50384., 51816., 53248.,
      54812., 56248., 57684., 59120., 60704., 62144., 63584., 65024., 43524.,
      44968., 46412., 47856., 49416., 50864., 52312., 53760., 55340., 56792.,
      58244., 59696., 61296., 62752., 64208., 65664., 43924., 45384., 46844.,
      48304., 49880., 51344., 52808., 54272., 55868., 57336., 58804., 60272.,
      61888., 63360., 64832., 66304., 44324., 45800., 47276., 48752., 50344.,
      51824., 53304., 54784., 56396., 57880., 59364., 60848., 62480., 63968.,
      65456., 66944., 47524., 49128., 50732., 52336., 54056., 55664., 57272.,
      58880., 60620., 62232., 63844., 65456., 67216., 68832., 70448., 72064.,
      47924., 49544., 51164., 52784., 54520., 56144., 57768., 59392., 61148.,
      62776., 64404., 66032., 67808., 69440., 71072., 72704., 48324., 49960.,
      51596., 53232., 54984., 56624., 58264., 59904., 61676., 63320., 64964.,
      66608., 68400., 70048., 71696., 73344., 48724., 50376., 52028., 53680.,
      55448., 57104., 58760., 60416., 62204., 63864., 65524., 67184., 68992.,
      70656., 72320., 73984., 49124., 50792., 52460., 54128., 55912., 57584.,
      59256., 60928., 62732., 64408., 66084., 67760., 69584., 71264., 72944.,
      74624., 49524., 51208., 52892., 54576., 56376., 58064., 59752., 61440.,
      63260., 64952., 66644., 68336., 70176., 71872., 73568., 75264., 49924.,
      51624., 53324., 55024., 56840., 58544., 60248., 61952., 63788., 65496.,
      67204., 68912., 70768., 72480., 74192., 75904., 53124., 54952., 56780.,
      58608., 60552., 62384., 64216., 66048., 68012., 69848., 71684., 73520.,
      75504., 77344., 79184., 81024., 53524., 55368., 57212., 59056., 61016.,
      62864., 64712., 66560., 68540., 70392., 72244., 74096., 76096., 77952.,
      79808., 81664., 53924., 55784., 57644., 59504., 61480., 63344., 65208.,
      67072., 69068., 70936., 72804., 74672., 76688., 78560., 80432., 82304.,
      54324., 56200., 58076., 59952., 61944., 63824., 65704., 67584., 69596.,
      71480., 73364., 75248., 77280., 79168., 81056., 82944., 54724., 56616.,
      58508., 60400., 62408., 64304., 66200., 68096., 70124., 72024., 73924.,
      75824., 77872., 79776., 81680., 83584., 55124., 57032., 58940., 60848.,
      62872., 64784., 66696., 68608., 70652., 72568., 74484., 76400., 78464.,
      80384., 82304., 84224., 55524., 57448., 59372., 61296., 63336., 65264.,
      67192., 69120., 71180., 73112., 75044., 76976., 79056., 80992., 82928.,
      84864.};
  const std::array<int, 4> in_shape = {{1, 11, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1816., 1844., 2554., 2593., 2632., 1600., 1624., 2151., 2184., 3021.,
      3066., 3111., 1884., 1911., 2514., 2547., 3516., 3561., 3606., 2181.,
      2208., 2877., 2910., 4011., 4056., 4101., 2478., 2505., 3240., 3273.,
      4506., 4551., 4596., 2775., 2802., 1272., 1288., 1705., 1726., 1747.,
      1000., 1012., 1448., 1464., 1936., 1957., 1978., 1132., 1144.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      342., 352., 362.,  372.,  382.,  392.,  402.,  452.,  462., 472.,
      482., 492., 502.,  512.,  562.,  572.,  582.,  592.,  602., 612.,
      622., 672., 682.,  692.,  702.,  712.,  722.,  732.,  782., 792.,
      802., 812., 822.,  832.,  842.,  892.,  902.,  912.,  922., 932.,
      942., 952., 1002., 1012., 1022., 1032., 1042., 1052., 1062.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3392., 3632., 3444., 3688., 4748., 5108., 4820., 5186., 4892., 5264.,
      2956., 3200., 3000., 3248., 4008., 4302., 4068., 4368., 5601., 6042.,
      5682., 6132., 5763., 6222., 3468., 3768., 3516., 3822., 4668., 5028.,
      4728., 5094., 6492., 7032., 6573., 7122., 6654., 7212., 3996., 4362.,
      4044., 4416., 5328., 5754., 5388., 5820., 7383., 8022., 7464., 8112.,
      7545., 8202., 4524., 4956., 4572., 5010., 5988., 6480., 6048., 6546.,
      8274., 9012., 8355., 9102., 8436., 9192., 5052., 5550., 5100., 5604.,
      2260., 2544., 2288., 2576., 2984., 3410., 3020., 3452., 3056., 3494.,
      1712., 2000., 1732., 2024., 2568., 2896., 2596., 2928., 3380., 3872.,
      3416., 3914., 3452., 3956., 1932., 2264., 1952., 2288.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      584.,  684.,  600.,  704.,  616.,  724.,  632.,  744.,  648.,  764.,
      664.,  784.,  680.,  804.,  760.,  904.,  776.,  924.,  792.,  944.,
      808.,  964.,  824.,  984.,  840.,  1004., 856.,  1024., 936.,  1124.,
      952.,  1144., 968.,  1164., 984.,  1184., 1000., 1204., 1016., 1224.,
      1032., 1244., 1112., 1344., 1128., 1364., 1144., 1384., 1160., 1404.,
      1176., 1424., 1192., 1444., 1208., 1464., 1288., 1564., 1304., 1584.,
      1320., 1604., 1336., 1624., 1352., 1644., 1368., 1664., 1384., 1684.,
      1464., 1784., 1480., 1804., 1496., 1824., 1512., 1844., 1528., 1864.,
      1544., 1884., 1560., 1904., 1640., 2004., 1656., 2024., 1672., 2044.,
      1688., 2064., 1704., 2084., 1720., 2104., 1736., 2124.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6544.,  6784.,  7024.,  7264.,  6644.,  6888.,  7132.,  7376.,  9136.,
      9496.,  9856.,  10216., 9274.,  9640.,  10006., 10372., 9412.,  9784.,
      10156., 10528., 5668.,  5912.,  6156.,  6400.,  5752.,  6000.,  6248.,
      6496.,  7722.,  8016.,  8310.,  8604.,  7836.,  8136.,  8436.,  8736.,
      10761., 11202., 11643., 12084., 10914., 11364., 11814., 12264., 11067.,
      11526., 11985., 12444., 6636.,  6936.,  7236.,  7536.,  6726.,  7032.,
      7338.,  7644.,  8976.,  9336.,  9696.,  10056., 9090.,  9456.,  9822.,
      10188., 12444., 12984., 13524., 14064., 12597., 13146., 13695., 14244.,
      12750., 13308., 13866., 14424., 7626.,  7992.,  8358.,  8724.,  7716.,
      8088.,  8460.,  8832.,  10230., 10656., 11082., 11508., 10344., 10776.,
      11208., 11640., 14127., 14766., 15405., 16044., 14280., 14928., 15576.,
      16224., 14433., 15090., 15747., 16404., 8616.,  9048.,  9480.,  9912.,
      8706.,  9144.,  9582.,  10020., 11484., 11976., 12468., 12960., 11598.,
      12096., 12594., 13092., 15810., 16548., 17286., 18024., 15963., 16710.,
      17457., 18204., 16116., 16872., 17628., 18384., 9606.,  10104., 10602.,
      11100., 9696.,  10200., 10704., 11208., 4236.,  4520.,  4804.,  5088.,
      4288.,  4576.,  4864.,  5152.,  5542.,  5968.,  6394.,  6820.,  5608.,
      6040.,  6472.,  6904.,  5674.,  6112.,  6550.,  6988.,  3136.,  3424.,
      3712.,  4000.,  3172.,  3464.,  3756.,  4048.,  4808.,  5136.,  5464.,
      5792.,  4860.,  5192.,  5524.,  5856.,  6268.,  6760.,  7252.,  7744.,
      6334.,  6832.,  7330.,  7828.,  6400.,  6904.,  7408.,  7912.,  3532.,
      3864.,  4196.,  4528.,  3568.,  3904.,  4240.,  4576.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1068., 1168., 1268., 1368., 1096., 1200., 1304., 1408., 1124., 1232.,
      1340., 1448., 1152., 1264., 1376., 1488., 1180., 1296., 1412., 1528.,
      1208., 1328., 1448., 1568., 1236., 1360., 1484., 1608., 1376., 1520.,
      1664., 1808., 1404., 1552., 1700., 1848., 1432., 1584., 1736., 1888.,
      1460., 1616., 1772., 1928., 1488., 1648., 1808., 1968., 1516., 1680.,
      1844., 2008., 1544., 1712., 1880., 2048., 1684., 1872., 2060., 2248.,
      1712., 1904., 2096., 2288., 1740., 1936., 2132., 2328., 1768., 1968.,
      2168., 2368., 1796., 2000., 2204., 2408., 1824., 2032., 2240., 2448.,
      1852., 2064., 2276., 2488., 1992., 2224., 2456., 2688., 2020., 2256.,
      2492., 2728., 2048., 2288., 2528., 2768., 2076., 2320., 2564., 2808.,
      2104., 2352., 2600., 2848., 2132., 2384., 2636., 2888., 2160., 2416.,
      2672., 2928., 2300., 2576., 2852., 3128., 2328., 2608., 2888., 3168.,
      2356., 2640., 2924., 3208., 2384., 2672., 2960., 3248., 2412., 2704.,
      2996., 3288., 2440., 2736., 3032., 3328., 2468., 2768., 3068., 3368.,
      2608., 2928., 3248., 3568., 2636., 2960., 3284., 3608., 2664., 2992.,
      3320., 3648., 2692., 3024., 3356., 3688., 2720., 3056., 3392., 3728.,
      2748., 3088., 3428., 3768., 2776., 3120., 3464., 3808., 2916., 3280.,
      3644., 4008., 2944., 3312., 3680., 4048., 2972., 3344., 3716., 4088.,
      3000., 3376., 3752., 4128., 3028., 3408., 3788., 4168., 3056., 3440.,
      3824., 4208., 3084., 3472., 3860., 4248.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6732.,  7264.,  6836.,  7376.,  9424.,  10216., 9568.,  10372., 9712.,
      10528., 5868.,  6400.,  5956.,  6496.,  7956.,  8604.,  8076.,  8736.,
      11121., 12084., 11283., 12264., 11445., 12444., 6888.,  7536.,  6984.,
      7644.,  9276.,  10056., 9396.,  10188., 12903., 14064., 13065., 14244.,
      13227., 14424., 7944.,  8724.,  8040.,  8832.,  10596., 11508., 10716.,
      11640., 14685., 16044., 14847., 16224., 15009., 16404., 9000.,  9912.,
      9096.,  10020., 11916., 12960., 12036., 13092., 16467., 18024., 16629.,
      18204., 16791., 18384., 10056., 11100., 10152., 11208., 4492.,  5088.,
      4548.,  5152.,  5932.,  6820.,  6004.,  6904.,  6076.,  6988.,  3404.,
      4000.,  3444.,  4048.,  5108.,  5792.,  5164.,  5856.,  6724.,  7744.,
      6796.,  7828.,  6868.,  7912.,  3844.,  4528.,  3884.,  4576.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1152., 1368., 1184., 1408., 1216., 1448., 1248., 1488., 1280., 1528.,
      1312., 1568., 1344., 1608., 1504., 1808., 1536., 1848., 1568., 1888.,
      1600., 1928., 1632., 1968., 1664., 2008., 1696., 2048., 1856., 2248.,
      1888., 2288., 1920., 2328., 1952., 2368., 1984., 2408., 2016., 2448.,
      2048., 2488., 2208., 2688., 2240., 2728., 2272., 2768., 2304., 2808.,
      2336., 2848., 2368., 2888., 2400., 2928., 2560., 3128., 2592., 3168.,
      2624., 3208., 2656., 3248., 2688., 3288., 2720., 3328., 2752., 3368.,
      2912., 3568., 2944., 3608., 2976., 3648., 3008., 3688., 3040., 3728.,
      3072., 3768., 3104., 3808., 3264., 4008., 3296., 4048., 3328., 4088.,
      3360., 4128., 3392., 4168., 3424., 4208., 3456., 4248.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      12988., 13464., 14048., 14528., 13188., 13672., 14264., 14752., 18134.,
      18848., 19712., 20432., 18410., 19136., 20012., 20744., 18686., 19424.,
      20312., 21056., 11252., 11736., 12312., 12800., 11420., 11912., 12496.,
      12992., 15330., 15912., 16620., 17208., 15558., 16152., 16872., 17472.,
      21369., 22242., 23286., 24168., 21675., 22566., 23628., 24528., 21981.,
      22890., 23970., 24888., 13182., 13776., 14472., 15072., 13362., 13968.,
      14676., 15288., 17838., 18552., 19392., 20112., 18066., 18792., 19644.,
      20376., 24735., 25806., 27048., 28128., 25041., 26130., 27390., 28488.,
      25347., 26454., 27732., 28848., 15162., 15888., 16716., 17448., 15342.,
      16080., 16920., 17664., 20346., 21192., 22164., 23016., 20574., 21432.,
      22416., 23280., 28101., 29370., 30810., 32088., 28407., 29694., 31152.,
      32448., 28713., 30018., 31494., 32808., 17142., 18000., 18960., 19824.,
      17322., 18192., 19164., 20040., 22854., 23832., 24936., 25920., 23082.,
      24072., 25188., 26184., 31467., 32934., 34572., 36048., 31773., 33258.,
      34914., 36408., 32079., 33582., 35256., 36768., 19122., 20112., 21204.,
      22200., 19302., 20304., 21408., 22416., 8420.,  8984.,  9608.,  10176.,
      8524.,  9096.,  9728.,  10304., 11018., 11864., 12788., 13640., 11150.,
      12008., 12944., 13808., 11282., 12152., 13100., 13976., 6236.,  6808.,
      7424.,  8000.,  6308.,  6888.,  7512.,  8096.,  9564.,  10216., 10928.,
      11584., 9668.,  10328., 11048., 11712., 12470., 13448., 14504., 15488.,
      12602., 13592., 14660., 15656., 12734., 13736., 14816., 15824., 7028.,
      7688.,  8392.,  9056.,  7100.,  7768.,  8480.,  9152.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2108., 2304., 2536., 2736., 2164., 2368., 2608., 2816., 2220., 2432.,
      2680., 2896., 2276., 2496., 2752., 2976., 2332., 2560., 2824., 3056.,
      2388., 2624., 2896., 3136., 2444., 2688., 2968., 3216., 2724., 3008.,
      3328., 3616., 2780., 3072., 3400., 3696., 2836., 3136., 3472., 3776.,
      2892., 3200., 3544., 3856., 2948., 3264., 3616., 3936., 3004., 3328.,
      3688., 4016., 3060., 3392., 3760., 4096., 3340., 3712., 4120., 4496.,
      3396., 3776., 4192., 4576., 3452., 3840., 4264., 4656., 3508., 3904.,
      4336., 4736., 3564., 3968., 4408., 4816., 3620., 4032., 4480., 4896.,
      3676., 4096., 4552., 4976., 3956., 4416., 4912., 5376., 4012., 4480.,
      4984., 5456., 4068., 4544., 5056., 5536., 4124., 4608., 5128., 5616.,
      4180., 4672., 5200., 5696., 4236., 4736., 5272., 5776., 4292., 4800.,
      5344., 5856., 4572., 5120., 5704., 6256., 4628., 5184., 5776., 6336.,
      4684., 5248., 5848., 6416., 4740., 5312., 5920., 6496., 4796., 5376.,
      5992., 6576., 4852., 5440., 6064., 6656., 4908., 5504., 6136., 6736.,
      5188., 5824., 6496., 7136., 5244., 5888., 6568., 7216., 5300., 5952.,
      6640., 7296., 5356., 6016., 6712., 7376., 5412., 6080., 6784., 7456.,
      5468., 6144., 6856., 7536., 5524., 6208., 6928., 7616., 5804., 6528.,
      7288., 8016., 5860., 6592., 7360., 8096., 5916., 6656., 7432., 8176.,
      5972., 6720., 7504., 8256., 6028., 6784., 7576., 8336., 6084., 6848.,
      7648., 8416., 6140., 6912., 7720., 8496.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      25500., 25976., 26452., 26928., 27616., 28096., 28576., 29056., 25892.,
      26376., 26860., 27344., 28040., 28528., 29016., 29504., 35554., 36268.,
      36982., 37696., 38704., 39424., 40144., 40864., 36094., 36820., 37546.,
      38272., 39292., 40024., 40756., 41488., 36634., 37372., 38110., 38848.,
      39880., 40624., 41368., 42112., 22020., 22504., 22988., 23472., 24136.,
      24624., 25112., 25600., 22348., 22840., 23332., 23824., 24496., 24992.,
      25488., 25984., 30078., 30660., 31242., 31824., 32652., 33240., 33828.,
      34416., 30522., 31116., 31710., 32304., 33144., 33744., 34344., 34944.,
      41865., 42738., 43611., 44484., 45690., 46572., 47454., 48336., 42459.,
      43350., 44241., 45132., 46356., 47256., 48156., 49056., 43053., 43962.,
      44871., 45780., 47022., 47940., 48858., 49776., 25770., 26364., 26958.,
      27552., 28344., 28944., 29544., 30144., 26118., 26724., 27330., 27936.,
      28740., 29352., 29964., 30576., 34962., 35676., 36390., 37104., 38064.,
      38784., 39504., 40224., 35406., 36132., 36858., 37584., 38556., 39288.,
      40020., 40752., 48399., 49470., 50541., 51612., 53016., 54096., 55176.,
      56256., 48993., 50082., 51171., 52260., 53682., 54780., 55878., 56976.,
      49587., 50694., 51801., 52908., 54348., 55464., 56580., 57696., 29598.,
      30324., 31050., 31776., 32700., 33432., 34164., 34896., 29946., 30684.,
      31422., 32160., 33096., 33840., 34584., 35328., 39846., 40692., 41538.,
      42384., 43476., 44328., 45180., 46032., 40290., 41148., 42006., 42864.,
      43968., 44832., 45696., 46560., 54933., 56202., 57471., 58740., 60342.,
      61620., 62898., 64176., 55527., 56814., 58101., 59388., 61008., 62304.,
      63600., 64896., 56121., 57426., 58731., 60036., 61674., 62988., 64302.,
      65616., 33426., 34284., 35142., 36000., 37056., 37920., 38784., 39648.,
      33774., 34644., 35514., 36384., 37452., 38328., 39204., 40080., 44730.,
      45708., 46686., 47664., 48888., 49872., 50856., 51840., 45174., 46164.,
      47154., 48144., 49380., 50376., 51372., 52368., 61467., 62934., 64401.,
      65868., 67668., 69144., 70620., 72096., 62061., 63546., 65031., 66516.,
      68334., 69828., 71322., 72816., 62655., 64158., 65661., 67164., 69000.,
      70512., 72024., 73536., 37254., 38244., 39234., 40224., 41412., 42408.,
      43404., 44400., 37602., 38604., 39606., 40608., 41808., 42816., 43824.,
      44832., 16276., 16840., 17404., 17968., 18648., 19216., 19784., 20352.,
      16476., 17048., 17620., 18192., 18880., 19456., 20032., 20608., 21190.,
      22036., 22882., 23728., 24724., 25576., 26428., 27280., 21442., 22300.,
      23158., 24016., 25024., 25888., 26752., 27616., 21694., 22564., 23434.,
      24304., 25324., 26200., 27076., 27952., 11900., 12472., 13044., 13616.,
      14272., 14848., 15424., 16000., 12036., 12616., 13196., 13776., 14440.,
      15024., 15608., 16192., 18476., 19128., 19780., 20432., 21200., 21856.,
      22512., 23168., 18676., 19336., 19996., 20656., 21432., 22096., 22760.,
      23424., 23962., 24940., 25918., 26896., 28024., 29008., 29992., 30976.,
      24214., 25204., 26194., 27184., 28324., 29320., 30316., 31312., 24466.,
      25468., 26470., 27472., 28624., 29632., 30640., 31648., 13396., 14056.,
      14716., 15376., 16120., 16784., 17448., 18112., 13532., 14200., 14868.,
      15536., 16288., 16960., 17632., 18304.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4020.,  4216.,  4412.,  4608.,  4872.,  5072.,  5272.,  5472.,  4124.,
      4328.,  4532.,  4736.,  5008.,  5216.,  5424.,  5632.,  4228.,  4440.,
      4652.,  4864.,  5144.,  5360.,  5576.,  5792.,  4332.,  4552.,  4772.,
      4992.,  5280.,  5504.,  5728.,  5952.,  4436.,  4664.,  4892.,  5120.,
      5416.,  5648.,  5880.,  6112.,  4540.,  4776.,  5012.,  5248.,  5552.,
      5792.,  6032.,  6272.,  4644.,  4888.,  5132.,  5376.,  5688.,  5936.,
      6184.,  6432.,  5164.,  5448.,  5732.,  6016.,  6368.,  6656.,  6944.,
      7232.,  5268.,  5560.,  5852.,  6144.,  6504.,  6800.,  7096.,  7392.,
      5372.,  5672.,  5972.,  6272.,  6640.,  6944.,  7248.,  7552.,  5476.,
      5784.,  6092.,  6400.,  6776.,  7088.,  7400.,  7712.,  5580.,  5896.,
      6212.,  6528.,  6912.,  7232.,  7552.,  7872.,  5684.,  6008.,  6332.,
      6656.,  7048.,  7376.,  7704.,  8032.,  5788.,  6120.,  6452.,  6784.,
      7184.,  7520.,  7856.,  8192.,  6308.,  6680.,  7052.,  7424.,  7864.,
      8240.,  8616.,  8992.,  6412.,  6792.,  7172.,  7552.,  8000.,  8384.,
      8768.,  9152.,  6516.,  6904.,  7292.,  7680.,  8136.,  8528.,  8920.,
      9312.,  6620.,  7016.,  7412.,  7808.,  8272.,  8672.,  9072.,  9472.,
      6724.,  7128.,  7532.,  7936.,  8408.,  8816.,  9224.,  9632.,  6828.,
      7240.,  7652.,  8064.,  8544.,  8960.,  9376.,  9792.,  6932.,  7352.,
      7772.,  8192.,  8680.,  9104.,  9528.,  9952.,  7452.,  7912.,  8372.,
      8832.,  9360.,  9824.,  10288., 10752., 7556.,  8024.,  8492.,  8960.,
      9496.,  9968.,  10440., 10912., 7660.,  8136.,  8612.,  9088.,  9632.,
      10112., 10592., 11072., 7764.,  8248.,  8732.,  9216.,  9768.,  10256.,
      10744., 11232., 7868.,  8360.,  8852.,  9344.,  9904.,  10400., 10896.,
      11392., 7972.,  8472.,  8972.,  9472.,  10040., 10544., 11048., 11552.,
      8076.,  8584.,  9092.,  9600.,  10176., 10688., 11200., 11712., 8596.,
      9144.,  9692.,  10240., 10856., 11408., 11960., 12512., 8700.,  9256.,
      9812.,  10368., 10992., 11552., 12112., 12672., 8804.,  9368.,  9932.,
      10496., 11128., 11696., 12264., 12832., 8908.,  9480.,  10052., 10624.,
      11264., 11840., 12416., 12992., 9012.,  9592.,  10172., 10752., 11400.,
      11984., 12568., 13152., 9116.,  9704.,  10292., 10880., 11536., 12128.,
      12720., 13312., 9220.,  9816.,  10412., 11008., 11672., 12272., 12872.,
      13472., 9740.,  10376., 11012., 11648., 12352., 12992., 13632., 14272.,
      9844.,  10488., 11132., 11776., 12488., 13136., 13784., 14432., 9948.,
      10600., 11252., 11904., 12624., 13280., 13936., 14592., 10052., 10712.,
      11372., 12032., 12760., 13424., 14088., 14752., 10156., 10824., 11492.,
      12160., 12896., 13568., 14240., 14912., 10260., 10936., 11612., 12288.,
      13032., 13712., 14392., 15072., 10364., 11048., 11732., 12416., 13168.,
      13856., 14544., 15232., 10884., 11608., 12332., 13056., 13848., 14576.,
      15304., 16032., 10988., 11720., 12452., 13184., 13984., 14720., 15456.,
      16192., 11092., 11832., 12572., 13312., 14120., 14864., 15608., 16352.,
      11196., 11944., 12692., 13440., 14256., 15008., 15760., 16512., 11300.,
      12056., 12812., 13568., 14392., 15152., 15912., 16672., 11404., 12168.,
      12932., 13696., 14528., 15296., 16064., 16832., 11508., 12280., 13052.,
      13824., 14664., 15440., 16216., 16992.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      25876., 26928., 27988., 29056., 26276., 27344., 28420., 29504., 36130.,
      37696., 39274., 40864., 36682., 38272., 39874., 41488., 37234., 38848.,
      40474., 42112., 22420., 23472., 24532., 25600., 22756., 23824., 24900.,
      25984., 30546., 31824., 33114., 34416., 31002., 32304., 33618., 34944.,
      42585., 44484., 46401., 48336., 43197., 45132., 47085., 49056., 43809.,
      45780., 47769., 49776., 26274., 27552., 28842., 30144., 26634., 27936.,
      29250., 30576., 35562., 37104., 38658., 40224., 36018., 37584., 39162.,
      40752., 49317., 51612., 53925., 56256., 49929., 52260., 54609., 56976.,
      50541., 52908., 55293., 57696., 30234., 31776., 33330., 34896., 30594.,
      32160., 33738., 35328., 40578., 42384., 44202., 46032., 41034., 42864.,
      44706., 46560., 56049., 58740., 61449., 64176., 56661., 59388., 62133.,
      64896., 57273., 60036., 62817., 65616., 34194., 36000., 37818., 39648.,
      34554., 36384., 38226., 40080., 45594., 47664., 49746., 51840., 46050.,
      48144., 50250., 52368., 62781., 65868., 68973., 72096., 63393., 66516.,
      69657., 72816., 64005., 67164., 70341., 73536., 38154., 40224., 42306.,
      44400., 38514., 40608., 42714., 44832., 16788., 17968., 19156., 20352.,
      16996., 18192., 19396., 20608., 21970., 23728., 25498., 27280., 22234.,
      24016., 25810., 27616., 22498., 24304., 26122., 27952., 12436., 13616.,
      14804., 16000., 12580., 13776., 14980., 16192., 19076., 20432., 21796.,
      23168., 19284., 20656., 22036., 23424., 24874., 26896., 28930., 30976.,
      25138., 27184., 29242., 31312., 25402., 27472., 29554., 31648., 14020.,
      15376., 16740., 18112., 14164., 15536., 16916., 18304.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4188.,  4608.,  5036.,  5472.,  4300.,  4736.,  5180.,  5632.,  4412.,
      4864.,  5324.,  5792.,  4524.,  4992.,  5468.,  5952.,  4636.,  5120.,
      5612.,  6112.,  4748.,  5248.,  5756.,  6272.,  4860.,  5376.,  5900.,
      6432.,  5420.,  6016.,  6620.,  7232.,  5532.,  6144.,  6764.,  7392.,
      5644.,  6272.,  6908.,  7552.,  5756.,  6400.,  7052.,  7712.,  5868.,
      6528.,  7196.,  7872.,  5980.,  6656.,  7340.,  8032.,  6092.,  6784.,
      7484.,  8192.,  6652.,  7424.,  8204.,  8992.,  6764.,  7552.,  8348.,
      9152.,  6876.,  7680.,  8492.,  9312.,  6988.,  7808.,  8636.,  9472.,
      7100.,  7936.,  8780.,  9632.,  7212.,  8064.,  8924.,  9792.,  7324.,
      8192.,  9068.,  9952.,  7884.,  8832.,  9788.,  10752., 7996.,  8960.,
      9932.,  10912., 8108.,  9088.,  10076., 11072., 8220.,  9216.,  10220.,
      11232., 8332.,  9344.,  10364., 11392., 8444.,  9472.,  10508., 11552.,
      8556.,  9600.,  10652., 11712., 9116.,  10240., 11372., 12512., 9228.,
      10368., 11516., 12672., 9340.,  10496., 11660., 12832., 9452.,  10624.,
      11804., 12992., 9564.,  10752., 11948., 13152., 9676.,  10880., 12092.,
      13312., 9788.,  11008., 12236., 13472., 10348., 11648., 12956., 14272.,
      10460., 11776., 13100., 14432., 10572., 11904., 13244., 14592., 10684.,
      12032., 13388., 14752., 10796., 12160., 13532., 14912., 10908., 12288.,
      13676., 15072., 11020., 12416., 13820., 15232., 11580., 13056., 14540.,
      16032., 11692., 13184., 14684., 16192., 11804., 13312., 14828., 16352.,
      11916., 13440., 14972., 16512., 12028., 13568., 15116., 16672., 12140.,
      13696., 15260., 16832., 12252., 13824., 15404., 16992.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      50804.,  51752.,  52904.,  53856.,  55020.,  55976.,  57152.,  58112.,
      51588.,  52552.,  53720.,  54688.,  55868.,  56840.,  58032.,  59008.,
      70838.,  72260.,  73964.,  75392.,  77114.,  78548.,  80288.,  81728.,
      71918.,  73364.,  75092.,  76544.,  78290.,  79748.,  81512.,  82976.,
      72998.,  74468.,  76220.,  77696.,  79466.,  80948.,  82736.,  84224.,
      43876.,  44840.,  45976.,  46944.,  48092.,  49064.,  50224.,  51200.,
      44532.,  45512.,  46664.,  47648.,  48812.,  49800.,  50976.,  51968.,
      59934.,  61092.,  62484.,  63648.,  65058.,  66228.,  67656.,  68832.,
      60822.,  62004.,  63420.,  64608.,  66042.,  67236.,  68688.,  69888.,
      83433.,  85170.,  87222.,  88968.,  91047.,  92802.,  94908.,  96672.,
      84621.,  86394.,  88482.,  90264.,  92379.,  94170.,  96312.,  98112.,
      85809.,  87618.,  89742.,  91560.,  93711.,  95538.,  97716.,  99552.,
      51366.,  52548.,  53916.,  55104.,  56490.,  57684.,  59088.,  60288.,
      52062.,  53268.,  54660.,  55872.,  57282.,  58500.,  59928.,  61152.,
      69702.,  71124.,  72780.,  74208.,  75882.,  77316.,  79008.,  80448.,
      70590.,  72036.,  73716.,  75168.,  76866.,  78324.,  80040.,  81504.,
      96501.,  98634.,  101082., 103224., 105699., 107850., 110352., 112512.,
      97689.,  99858.,  102342., 104520., 107031., 109218., 111756., 113952.,
      98877.,  101082., 103602., 105816., 108363., 110586., 113160., 115392.,
      59022.,  60468.,  62100.,  63552.,  65202.,  66660.,  68328.,  69792.,
      59718.,  61188.,  62844.,  64320.,  65994.,  67476.,  69168.,  70656.,
      79470.,  81156.,  83076.,  84768.,  86706.,  88404.,  90360.,  92064.,
      80358.,  82068.,  84012.,  85728.,  87690.,  89412.,  91392.,  93120.,
      109569., 112098., 114942., 117480., 120351., 122898., 125796., 128352.,
      110757., 113322., 116202., 118776., 121683., 124266., 127200., 129792.,
      111945., 114546., 117462., 120072., 123015., 125634., 128604., 131232.,
      66678.,  68388.,  70284.,  72000.,  73914.,  75636.,  77568.,  79296.,
      67374.,  69108.,  71028.,  72768.,  74706.,  76452.,  78408.,  80160.,
      89238.,  91188.,  93372.,  95328.,  97530.,  99492.,  101712., 103680.,
      90126.,  92100.,  94308.,  96288.,  98514.,  100500., 102744., 104736.,
      122637., 125562., 128802., 131736., 135003., 137946., 141240., 144192.,
      123825., 126786., 130062., 133032., 136335., 139314., 142644., 145632.,
      125013., 128010., 131322., 134328., 137667., 140682., 144048., 147072.,
      74334.,  76308.,  78468.,  80448.,  82626.,  84612.,  86808.,  88800.,
      75030.,  77028.,  79212.,  81216.,  83418.,  85428.,  87648.,  89664.,
      32452.,  33576.,  34808.,  35936.,  37180.,  38312.,  39568.,  40704.,
      32852.,  33992.,  35240.,  36384.,  37644.,  38792.,  40064.,  41216.,
      42254.,  43940.,  45764.,  47456.,  49298.,  50996.,  52856.,  54560.,
      42758.,  44468.,  46316.,  48032.,  49898.,  51620.,  53504.,  55232.,
      43262.,  44996.,  46868.,  48608.,  50498.,  52244.,  54152.,  55904.,
      23732.,  24872.,  26088.,  27232.,  28460.,  29608.,  30848.,  32000.,
      24004.,  25160.,  26392.,  27552.,  28796.,  29960.,  31216.,  32384.,
      36852.,  38152.,  39560.,  40864.,  42284.,  43592.,  45024.,  46336.,
      37252.,  38568.,  39992.,  41312.,  42748.,  44072.,  45520.,  46848.,
      47798.,  49748.,  51836.,  53792.,  55898.,  57860.,  59984.,  61952.,
      48302.,  50276.,  52388.,  54368.,  56498.,  58484.,  60632.,  62624.,
      48806.,  50804.,  52940.,  54944.,  57098.,  59108.,  61280.,  63296.,
      26724.,  28040.,  29432.,  30752.,  32156.,  33480.,  34896.,  36224.,
      26996.,  28328.,  29736.,  31072.,  32492.,  33832.,  35264.,  36608.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7988.,  8376.,  8824.,  9216.,  9676.,  10072., 10544., 10944., 8196.,
      8600.,  9064.,  9472.,  9948.,  10360., 10848., 11264., 8404.,  8824.,
      9304.,  9728.,  10220., 10648., 11152., 11584., 8612.,  9048.,  9544.,
      9984.,  10492., 10936., 11456., 11904., 8820.,  9272.,  9784.,  10240.,
      10764., 11224., 11760., 12224., 9028.,  9496.,  10024., 10496., 11036.,
      11512., 12064., 12544., 9236.,  9720.,  10264., 10752., 11308., 11800.,
      12368., 12864., 10276., 10840., 11464., 12032., 12668., 13240., 13888.,
      14464., 10484., 11064., 11704., 12288., 12940., 13528., 14192., 14784.,
      10692., 11288., 11944., 12544., 13212., 13816., 14496., 15104., 10900.,
      11512., 12184., 12800., 13484., 14104., 14800., 15424., 11108., 11736.,
      12424., 13056., 13756., 14392., 15104., 15744., 11316., 11960., 12664.,
      13312., 14028., 14680., 15408., 16064., 11524., 12184., 12904., 13568.,
      14300., 14968., 15712., 16384., 12564., 13304., 14104., 14848., 15660.,
      16408., 17232., 17984., 12772., 13528., 14344., 15104., 15932., 16696.,
      17536., 18304., 12980., 13752., 14584., 15360., 16204., 16984., 17840.,
      18624., 13188., 13976., 14824., 15616., 16476., 17272., 18144., 18944.,
      13396., 14200., 15064., 15872., 16748., 17560., 18448., 19264., 13604.,
      14424., 15304., 16128., 17020., 17848., 18752., 19584., 13812., 14648.,
      15544., 16384., 17292., 18136., 19056., 19904., 14852., 15768., 16744.,
      17664., 18652., 19576., 20576., 21504., 15060., 15992., 16984., 17920.,
      18924., 19864., 20880., 21824., 15268., 16216., 17224., 18176., 19196.,
      20152., 21184., 22144., 15476., 16440., 17464., 18432., 19468., 20440.,
      21488., 22464., 15684., 16664., 17704., 18688., 19740., 20728., 21792.,
      22784., 15892., 16888., 17944., 18944., 20012., 21016., 22096., 23104.,
      16100., 17112., 18184., 19200., 20284., 21304., 22400., 23424., 17140.,
      18232., 19384., 20480., 21644., 22744., 23920., 25024., 17348., 18456.,
      19624., 20736., 21916., 23032., 24224., 25344., 17556., 18680., 19864.,
      20992., 22188., 23320., 24528., 25664., 17764., 18904., 20104., 21248.,
      22460., 23608., 24832., 25984., 17972., 19128., 20344., 21504., 22732.,
      23896., 25136., 26304., 18180., 19352., 20584., 21760., 23004., 24184.,
      25440., 26624., 18388., 19576., 20824., 22016., 23276., 24472., 25744.,
      26944., 19428., 20696., 22024., 23296., 24636., 25912., 27264., 28544.,
      19636., 20920., 22264., 23552., 24908., 26200., 27568., 28864., 19844.,
      21144., 22504., 23808., 25180., 26488., 27872., 29184., 20052., 21368.,
      22744., 24064., 25452., 26776., 28176., 29504., 20260., 21592., 22984.,
      24320., 25724., 27064., 28480., 29824., 20468., 21816., 23224., 24576.,
      25996., 27352., 28784., 30144., 20676., 22040., 23464., 24832., 26268.,
      27640., 29088., 30464., 21716., 23160., 24664., 26112., 27628., 29080.,
      30608., 32064., 21924., 23384., 24904., 26368., 27900., 29368., 30912.,
      32384., 22132., 23608., 25144., 26624., 28172., 29656., 31216., 32704.,
      22340., 23832., 25384., 26880., 28444., 29944., 31520., 33024., 22548.,
      24056., 25624., 27136., 28716., 30232., 31824., 33344., 22756., 24280.,
      25864., 27392., 28988., 30520., 32128., 33664., 22964., 24504., 26104.,
      27648., 29260., 30808., 32432., 33984.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      100660., 101608., 102556., 103504., 104856., 105808., 106760., 107712.,
      109084., 110040., 110996., 111952., 113344., 114304., 115264., 116224.,
      102212., 103176., 104140., 105104., 106472., 107440., 108408., 109376.,
      110764., 111736., 112708., 113680., 115088., 116064., 117040., 118016.,
      140254., 141676., 143098., 144520., 146500., 147928., 149356., 150784.,
      152794., 154228., 155662., 157096., 159136., 160576., 162016., 163456.,
      142390., 143836., 145282., 146728., 148732., 150184., 151636., 153088.,
      155122., 156580., 158038., 159496., 161560., 163024., 164488., 165952.,
      144526., 145996., 147466., 148936., 150964., 152440., 153916., 155392.,
      157450., 158932., 160414., 161896., 163984., 165472., 166960., 168448.,
      86788.,  87752.,  88716.,  89680.,  90984.,  91952.,  92920.,  93888.,
      95212.,  96184.,  97156.,  98128.,  99472.,  100448., 101424., 102400.,
      88084.,  89064.,  90044.,  91024.,  92344.,  93328.,  94312.,  95296.,
      96636.,  97624.,  98612.,  99600.,  100960., 101952., 102944., 103936.,
      118710., 119868., 121026., 122184., 123804., 124968., 126132., 127296.,
      128946., 130116., 131286., 132456., 134136., 135312., 136488., 137664.,
      120462., 121644., 122826., 124008., 125652., 126840., 128028., 129216.,
      130890., 132084., 133278., 134472., 136176., 137376., 138576., 139776.,
      165129., 166866., 168603., 170340., 172698., 174444., 176190., 177936.,
      180339., 182094., 183849., 185604., 188052., 189816., 191580., 193344.,
      167469., 169242., 171015., 172788., 175182., 176964., 178746., 180528.,
      182967., 184758., 186549., 188340., 190824., 192624., 194424., 196224.,
      169809., 171618., 173427., 175236., 177666., 179484., 181302., 183120.,
      185595., 187422., 189249., 191076., 193596., 195432., 197268., 199104.,
      101550., 102732., 103914., 105096., 106644., 107832., 109020., 110208.,
      111786., 112980., 114174., 115368., 116976., 118176., 119376., 120576.,
      102918., 104124., 105330., 106536., 108108., 109320., 110532., 111744.,
      113346., 114564., 115782., 117000., 118632., 119856., 121080., 122304.,
      137982., 139404., 140826., 142248., 144132., 145560., 146988., 148416.,
      150330., 151764., 153198., 154632., 156576., 158016., 159456., 160896.,
      139734., 141180., 142626., 144072., 145980., 147432., 148884., 150336.,
      152274., 153732., 155190., 156648., 158616., 160080., 161544., 163008.,
      190869., 193002., 195135., 197268., 200022., 202164., 204306., 206448.,
      209247., 211398., 213549., 215700., 218544., 220704., 222864., 225024.,
      193209., 195378., 197547., 199716., 202506., 204684., 206862., 209040.,
      211875., 214062., 216249., 218436., 221316., 223512., 225708., 227904.,
      195549., 197754., 199959., 202164., 204990., 207204., 209418., 211632.,
      214503., 216726., 218949., 221172., 224088., 226320., 228552., 230784.,
      116598., 118044., 119490., 120936., 122748., 124200., 125652., 127104.,
      128946., 130404., 131862., 133320., 135192., 136656., 138120., 139584.,
      117966., 119436., 120906., 122376., 124212., 125688., 127164., 128640.,
      130506., 131988., 133470., 134952., 136848., 138336., 139824., 141312.,
      157254., 158940., 160626., 162312., 164460., 166152., 167844., 169536.,
      171714., 173412., 175110., 176808., 179016., 180720., 182424., 184128.,
      159006., 160716., 162426., 164136., 166308., 168024., 169740., 171456.,
      173658., 175380., 177102., 178824., 181056., 182784., 184512., 186240.,
      216609., 219138., 221667., 224196., 227346., 229884., 232422., 234960.,
      238155., 240702., 243249., 245796., 249036., 251592., 254148., 256704.,
      218949., 221514., 224079., 226644., 229830., 232404., 234978., 237552.,
      240783., 243366., 245949., 248532., 251808., 254400., 256992., 259584.,
      221289., 223890., 226491., 229092., 232314., 234924., 237534., 240144.,
      243411., 246030., 248649., 251268., 254580., 257208., 259836., 262464.,
      131646., 133356., 135066., 136776., 138852., 140568., 142284., 144000.,
      146106., 147828., 149550., 151272., 153408., 155136., 156864., 158592.,
      133014., 134748., 136482., 138216., 140316., 142056., 143796., 145536.,
      147666., 149412., 151158., 152904., 155064., 156816., 158568., 160320.,
      176526., 178476., 180426., 182376., 184788., 186744., 188700., 190656.,
      193098., 195060., 197022., 198984., 201456., 203424., 205392., 207360.,
      178278., 180252., 182226., 184200., 186636., 188616., 190596., 192576.,
      195042., 197028., 199014., 201000., 203496., 205488., 207480., 209472.,
      242349., 245274., 248199., 251124., 254670., 257604., 260538., 263472.,
      267063., 270006., 272949., 275892., 279528., 282480., 285432., 288384.,
      244689., 247650., 250611., 253572., 257154., 260124., 263094., 266064.,
      269691., 272670., 275649., 278628., 282300., 285288., 288276., 291264.,
      247029., 250026., 253023., 256020., 259638., 262644., 265650., 268656.,
      272319., 275334., 278349., 281364., 285072., 288096., 291120., 294144.,
      146694., 148668., 150642., 152616., 154956., 156936., 158916., 160896.,
      163266., 165252., 167238., 169224., 171624., 173616., 175608., 177600.,
      148062., 150060., 152058., 154056., 156420., 158424., 160428., 162432.,
      164826., 166836., 168846., 170856., 173280., 175296., 177312., 179328.,
      63780.,  64904.,  66028.,  67152.,  68488.,  69616.,  70744.,  71872.,
      73228.,  74360.,  75492.,  76624.,  78000.,  79136.,  80272.,  81408.,
      64564.,  65704.,  66844.,  67984.,  69336.,  70480.,  71624.,  72768.,
      74140.,  75288.,  76436.,  77584.,  78976.,  80128.,  81280.,  82432.,
      82822.,  84508.,  86194.,  87880.,  89836.,  91528.,  93220.,  94912.,
      96898.,  98596.,  100294., 101992., 104008., 105712., 107416., 109120.,
      83806.,  85516.,  87226.,  88936.,  90916.,  92632.,  94348.,  96064.,
      98074.,  99796.,  101518., 103240., 105280., 107008., 108736., 110464.,
      84790.,  86524.,  88258.,  89992.,  91996.,  93736.,  95476.,  97216.,
      99250.,  100996., 102742., 104488., 106552., 108304., 110056., 111808.,
      46324.,  47464.,  48604.,  49744.,  51032.,  52176.,  53320.,  54464.,
      55772.,  56920.,  58068.,  59216.,  60544.,  61696.,  62848.,  64000.,
      46852.,  48008.,  49164.,  50320.,  51624.,  52784.,  53944.,  55104.,
      56428.,  57592.,  58756.,  59920.,  61264.,  62432.,  63600.,  64768.,
      72404.,  73704.,  75004.,  76304.,  77816.,  79120.,  80424.,  81728.,
      83260.,  84568.,  85876.,  87184.,  88736.,  90048.,  91360.,  92672.,
      73188.,  74504.,  75820.,  77136.,  78664.,  79984.,  81304.,  82624.,
      84172.,  85496.,  86820.,  88144.,  89712.,  91040.,  92368.,  93696.,
      93646.,  95596.,  97546.,  99496.,  101716., 103672., 105628., 107584.,
      109834., 111796., 113758., 115720., 118000., 119968., 121936., 123904.,
      94630.,  96604.,  98578.,  100552., 102796., 104776., 106756., 108736.,
      111010., 112996., 114982., 116968., 119272., 121264., 123256., 125248.,
      95614.,  97612.,  99610.,  101608., 103876., 105880., 107884., 109888.,
      112186., 114196., 116206., 118216., 120544., 122560., 124576., 126592.,
      52132.,  53448.,  54764.,  56080.,  57544.,  58864.,  60184.,  61504.,
      62988.,  64312.,  65636.,  66960.,  68464.,  69792.,  71120.,  72448.,
      52660.,  53992.,  55324.,  56656.,  58136.,  59472.,  60808.,  62144.,
      63644.,  64984.,  66324.,  67664.,  69184.,  70528.,  71872.,  73216.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      15588., 15976., 16364., 16752., 17256., 17648., 18040., 18432., 18956.,
      19352., 19748., 20144., 20688., 21088., 21488., 21888., 15988., 16392.,
      16796., 17200., 17720., 18128., 18536., 18944., 19484., 19896., 20308.,
      20720., 21280., 21696., 22112., 22528., 16388., 16808., 17228., 17648.,
      18184., 18608., 19032., 19456., 20012., 20440., 20868., 21296., 21872.,
      22304., 22736., 23168., 16788., 17224., 17660., 18096., 18648., 19088.,
      19528., 19968., 20540., 20984., 21428., 21872., 22464., 22912., 23360.,
      23808., 17188., 17640., 18092., 18544., 19112., 19568., 20024., 20480.,
      21068., 21528., 21988., 22448., 23056., 23520., 23984., 24448., 17588.,
      18056., 18524., 18992., 19576., 20048., 20520., 20992., 21596., 22072.,
      22548., 23024., 23648., 24128., 24608., 25088., 17988., 18472., 18956.,
      19440., 20040., 20528., 21016., 21504., 22124., 22616., 23108., 23600.,
      24240., 24736., 25232., 25728., 19988., 20552., 21116., 21680., 22360.,
      22928., 23496., 24064., 24764., 25336., 25908., 26480., 27200., 27776.,
      28352., 28928., 20388., 20968., 21548., 22128., 22824., 23408., 23992.,
      24576., 25292., 25880., 26468., 27056., 27792., 28384., 28976., 29568.,
      20788., 21384., 21980., 22576., 23288., 23888., 24488., 25088., 25820.,
      26424., 27028., 27632., 28384., 28992., 29600., 30208., 21188., 21800.,
      22412., 23024., 23752., 24368., 24984., 25600., 26348., 26968., 27588.,
      28208., 28976., 29600., 30224., 30848., 21588., 22216., 22844., 23472.,
      24216., 24848., 25480., 26112., 26876., 27512., 28148., 28784., 29568.,
      30208., 30848., 31488., 21988., 22632., 23276., 23920., 24680., 25328.,
      25976., 26624., 27404., 28056., 28708., 29360., 30160., 30816., 31472.,
      32128., 22388., 23048., 23708., 24368., 25144., 25808., 26472., 27136.,
      27932., 28600., 29268., 29936., 30752., 31424., 32096., 32768., 24388.,
      25128., 25868., 26608., 27464., 28208., 28952., 29696., 30572., 31320.,
      32068., 32816., 33712., 34464., 35216., 35968., 24788., 25544., 26300.,
      27056., 27928., 28688., 29448., 30208., 31100., 31864., 32628., 33392.,
      34304., 35072., 35840., 36608., 25188., 25960., 26732., 27504., 28392.,
      29168., 29944., 30720., 31628., 32408., 33188., 33968., 34896., 35680.,
      36464., 37248., 25588., 26376., 27164., 27952., 28856., 29648., 30440.,
      31232., 32156., 32952., 33748., 34544., 35488., 36288., 37088., 37888.,
      25988., 26792., 27596., 28400., 29320., 30128., 30936., 31744., 32684.,
      33496., 34308., 35120., 36080., 36896., 37712., 38528., 26388., 27208.,
      28028., 28848., 29784., 30608., 31432., 32256., 33212., 34040., 34868.,
      35696., 36672., 37504., 38336., 39168., 26788., 27624., 28460., 29296.,
      30248., 31088., 31928., 32768., 33740., 34584., 35428., 36272., 37264.,
      38112., 38960., 39808., 28788., 29704., 30620., 31536., 32568., 33488.,
      34408., 35328., 36380., 37304., 38228., 39152., 40224., 41152., 42080.,
      43008., 29188., 30120., 31052., 31984., 33032., 33968., 34904., 35840.,
      36908., 37848., 38788., 39728., 40816., 41760., 42704., 43648., 29588.,
      30536., 31484., 32432., 33496., 34448., 35400., 36352., 37436., 38392.,
      39348., 40304., 41408., 42368., 43328., 44288., 29988., 30952., 31916.,
      32880., 33960., 34928., 35896., 36864., 37964., 38936., 39908., 40880.,
      42000., 42976., 43952., 44928., 30388., 31368., 32348., 33328., 34424.,
      35408., 36392., 37376., 38492., 39480., 40468., 41456., 42592., 43584.,
      44576., 45568., 30788., 31784., 32780., 33776., 34888., 35888., 36888.,
      37888., 39020., 40024., 41028., 42032., 43184., 44192., 45200., 46208.,
      31188., 32200., 33212., 34224., 35352., 36368., 37384., 38400., 39548.,
      40568., 41588., 42608., 43776., 44800., 45824., 46848., 33188., 34280.,
      35372., 36464., 37672., 38768., 39864., 40960., 42188., 43288., 44388.,
      45488., 46736., 47840., 48944., 50048., 33588., 34696., 35804., 36912.,
      38136., 39248., 40360., 41472., 42716., 43832., 44948., 46064., 47328.,
      48448., 49568., 50688., 33988., 35112., 36236., 37360., 38600., 39728.,
      40856., 41984., 43244., 44376., 45508., 46640., 47920., 49056., 50192.,
      51328., 34388., 35528., 36668., 37808., 39064., 40208., 41352., 42496.,
      43772., 44920., 46068., 47216., 48512., 49664., 50816., 51968., 34788.,
      35944., 37100., 38256., 39528., 40688., 41848., 43008., 44300., 45464.,
      46628., 47792., 49104., 50272., 51440., 52608., 35188., 36360., 37532.,
      38704., 39992., 41168., 42344., 43520., 44828., 46008., 47188., 48368.,
      49696., 50880., 52064., 53248., 35588., 36776., 37964., 39152., 40456.,
      41648., 42840., 44032., 45356., 46552., 47748., 48944., 50288., 51488.,
      52688., 53888., 37588., 38856., 40124., 41392., 42776., 44048., 45320.,
      46592., 47996., 49272., 50548., 51824., 53248., 54528., 55808., 57088.,
      37988., 39272., 40556., 41840., 43240., 44528., 45816., 47104., 48524.,
      49816., 51108., 52400., 53840., 55136., 56432., 57728., 38388., 39688.,
      40988., 42288., 43704., 45008., 46312., 47616., 49052., 50360., 51668.,
      52976., 54432., 55744., 57056., 58368., 38788., 40104., 41420., 42736.,
      44168., 45488., 46808., 48128., 49580., 50904., 52228., 53552., 55024.,
      56352., 57680., 59008., 39188., 40520., 41852., 43184., 44632., 45968.,
      47304., 48640., 50108., 51448., 52788., 54128., 55616., 56960., 58304.,
      59648., 39588., 40936., 42284., 43632., 45096., 46448., 47800., 49152.,
      50636., 51992., 53348., 54704., 56208., 57568., 58928., 60288., 39988.,
      41352., 42716., 44080., 45560., 46928., 48296., 49664., 51164., 52536.,
      53908., 55280., 56800., 58176., 59552., 60928., 41988., 43432., 44876.,
      46320., 47880., 49328., 50776., 52224., 53804., 55256., 56708., 58160.,
      59760., 61216., 62672., 64128., 42388., 43848., 45308., 46768., 48344.,
      49808., 51272., 52736., 54332., 55800., 57268., 58736., 60352., 61824.,
      63296., 64768., 42788., 44264., 45740., 47216., 48808., 50288., 51768.,
      53248., 54860., 56344., 57828., 59312., 60944., 62432., 63920., 65408.,
      43188., 44680., 46172., 47664., 49272., 50768., 52264., 53760., 55388.,
      56888., 58388., 59888., 61536., 63040., 64544., 66048., 43588., 45096.,
      46604., 48112., 49736., 51248., 52760., 54272., 55916., 57432., 58948.,
      60464., 62128., 63648., 65168., 66688., 43988., 45512., 47036., 48560.,
      50200., 51728., 53256., 54784., 56444., 57976., 59508., 61040., 62720.,
      64256., 65792., 67328., 44388., 45928., 47468., 49008., 50664., 52208.,
      53752., 55296., 56972., 58520., 60068., 61616., 63312., 64864., 66416.,
      67968.};
  const std::array<int, 4> in_shape = {{1, 12, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1996., 2767., 2806., 2845., 2884., 1756., 1780., 2364., 3273., 3318.,
      3363., 3408., 2067., 2094., 2760., 3813., 3858., 3903., 3948., 2391.,
      2418., 3156., 4353., 4398., 4443., 4488., 2715., 2742., 3552., 4893.,
      4938., 4983., 5028., 3039., 3066., 1396., 1849., 1870., 1891., 1912.,
      1096., 1108., 1588., 2101., 2122., 2143., 2164., 1240., 1252.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      370.,  380.,  390.,  400.,  410.,  420.,  430.,  490.,  500.,  510.,
      520.,  530.,  540.,  550.,  610.,  620.,  630.,  640.,  650.,  660.,
      670.,  730.,  740.,  750.,  760.,  770.,  780.,  790.,  850.,  860.,
      870.,  880.,  890.,  900.,  910.,  970.,  980.,  990.,  1000., 1010.,
      1020., 1030., 1090., 1100., 1110., 1120., 1130., 1140., 1150.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3728., 3992., 5144., 5534., 5216., 5612.,  5288., 5690., 5360., 5768.,
      3244., 3512., 3288., 3560., 4404., 4728.,  6069., 6546., 6150., 6636.,
      6231., 6726., 6312., 6816., 3804., 4134.,  3852., 4188., 5124., 5520.,
      7041., 7626., 7122., 7716., 7203., 7806.,  7284., 7896., 4380., 4782.,
      4428., 4836., 5844., 6312., 8013., 8706.,  8094., 8796., 8175., 8886.,
      8256., 8976., 4956., 5430., 5004., 5484.,  6564., 7104., 8985., 9786.,
      9066., 9876., 9147., 9966., 9228., 10056., 5532., 6078., 5580., 6132.,
      2480., 2792., 3236., 3698., 3272., 3740.,  3308., 3782., 3344., 3824.,
      1876., 2192., 1896., 2216., 2816., 3176.,  3668., 4202., 3704., 4244.,
      3740., 4286., 3776., 4328., 2116., 2480.,  2136., 2504.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      632.,  740.,  648.,  760.,  664.,  780.,  680.,  800.,  696.,  820.,
      712.,  840.,  728.,  860.,  824.,  980.,  840.,  1000., 856.,  1020.,
      872.,  1040., 888.,  1060., 904.,  1080., 920.,  1100., 1016., 1220.,
      1032., 1240., 1048., 1260., 1064., 1280., 1080., 1300., 1096., 1320.,
      1112., 1340., 1208., 1460., 1224., 1480., 1240., 1500., 1256., 1520.,
      1272., 1540., 1288., 1560., 1304., 1580., 1400., 1700., 1416., 1720.,
      1432., 1740., 1448., 1760., 1464., 1780., 1480., 1800., 1496., 1820.,
      1592., 1940., 1608., 1960., 1624., 1980., 1640., 2000., 1656., 2020.,
      1672., 2040., 1688., 2060., 1784., 2180., 1800., 2200., 1816., 2220.,
      1832., 2240., 1848., 2260., 1864., 2280., 1880., 2300.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7192.,  7456.,  7720.,  7984.,  9898.,  10288., 10678., 11068., 10036.,
      10432., 10828., 11224., 10174., 10576., 10978., 11380., 10312., 10720.,
      11128., 11536., 6220.,  6488.,  6756.,  7024.,  6304.,  6576.,  6848.,
      7120.,  8484.,  8808.,  9132.,  9456.,  11661., 12138., 12615., 13092.,
      11814., 12300., 12786., 13272., 11967., 12462., 12957., 13452., 12120.,
      12624., 13128., 13632., 7278.,  7608.,  7938.,  8268.,  7368.,  7704.,
      8040.,  8376.,  9852.,  10248., 10644., 11040., 13497., 14082., 14667.,
      15252., 13650., 14244., 14838., 15432., 13803., 14406., 15009., 15612.,
      13956., 14568., 15180., 15792., 8358.,  8760.,  9162.,  9564.,  8448.,
      8856.,  9264.,  9672.,  11220., 11688., 12156., 12624., 15333., 16026.,
      16719., 17412., 15486., 16188., 16890., 17592., 15639., 16350., 17061.,
      17772., 15792., 16512., 17232., 17952., 9438.,  9912.,  10386., 10860.,
      9528.,  10008., 10488., 10968., 12588., 13128., 13668., 14208., 17169.,
      17970., 18771., 19572., 17322., 18132., 18942., 19752., 17475., 18294.,
      19113., 19932., 17628., 18456., 19284., 20112., 10518., 11064., 11610.,
      12156., 10608., 11160., 11712., 12264., 4648.,  4960.,  5272.,  5584.,
      6010.,  6472.,  6934.,  7396.,  6076.,  6544.,  7012.,  7480.,  6142.,
      6616.,  7090.,  7564.,  6208.,  6688.,  7168.,  7648.,  3436.,  3752.,
      4068.,  4384.,  3472.,  3792.,  4112.,  4432.,  5272.,  5632.,  5992.,
      6352.,  6802.,  7336.,  7870.,  8404.,  6868.,  7408.,  7948.,  8488.,
      6934.,  7480.,  8026.,  8572.,  7000.,  7552.,  8104.,  8656.,  3868.,
      4232.,  4596.,  4960.,  3904.,  4272.,  4640.,  5008.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1156., 1264., 1372., 1480., 1184., 1296., 1408., 1520., 1212., 1328.,
      1444., 1560., 1240., 1360., 1480., 1600., 1268., 1392., 1516., 1640.,
      1296., 1424., 1552., 1680., 1324., 1456., 1588., 1720., 1492., 1648.,
      1804., 1960., 1520., 1680., 1840., 2000., 1548., 1712., 1876., 2040.,
      1576., 1744., 1912., 2080., 1604., 1776., 1948., 2120., 1632., 1808.,
      1984., 2160., 1660., 1840., 2020., 2200., 1828., 2032., 2236., 2440.,
      1856., 2064., 2272., 2480., 1884., 2096., 2308., 2520., 1912., 2128.,
      2344., 2560., 1940., 2160., 2380., 2600., 1968., 2192., 2416., 2640.,
      1996., 2224., 2452., 2680., 2164., 2416., 2668., 2920., 2192., 2448.,
      2704., 2960., 2220., 2480., 2740., 3000., 2248., 2512., 2776., 3040.,
      2276., 2544., 2812., 3080., 2304., 2576., 2848., 3120., 2332., 2608.,
      2884., 3160., 2500., 2800., 3100., 3400., 2528., 2832., 3136., 3440.,
      2556., 2864., 3172., 3480., 2584., 2896., 3208., 3520., 2612., 2928.,
      3244., 3560., 2640., 2960., 3280., 3600., 2668., 2992., 3316., 3640.,
      2836., 3184., 3532., 3880., 2864., 3216., 3568., 3920., 2892., 3248.,
      3604., 3960., 2920., 3280., 3640., 4000., 2948., 3312., 3676., 4040.,
      2976., 3344., 3712., 4080., 3004., 3376., 3748., 4120., 3172., 3568.,
      3964., 4360., 3200., 3600., 4000., 4400., 3228., 3632., 4036., 4440.,
      3256., 3664., 4072., 4480., 3284., 3696., 4108., 4520., 3312., 3728.,
      4144., 4560., 3340., 3760., 4180., 4600.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7404.,  7984.,  10216., 11068., 10360., 11224., 10504., 11380., 10648.,
      11536., 6444.,  7024.,  6532.,  7120.,  8748.,  9456.,  12057., 13092.,
      12219., 13272., 12381., 13452., 12543., 13632., 7560.,  8268.,  7656.,
      8376.,  10188., 11040., 14001., 15252., 14163., 15432., 14325., 15612.,
      14487., 15792., 8712.,  9564.,  8808.,  9672.,  11628., 12624., 15945.,
      17412., 16107., 17592., 16269., 17772., 16431., 17952., 9864.,  10860.,
      9960.,  10968., 13068., 14208., 17889., 19572., 18051., 19752., 18213.,
      19932., 18375., 20112., 11016., 12156., 11112., 12264., 4932.,  5584.,
      6436.,  7396.,  6508.,  7480.,  6580.,  7564.,  6652.,  7648.,  3732.,
      4384.,  3772.,  4432.,  5604.,  6352.,  7300.,  8404.,  7372.,  8488.,
      7444.,  8572.,  7516.,  8656.,  4212.,  4960.,  4252.,  5008.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1248., 1480., 1280., 1520., 1312., 1560., 1344., 1600., 1376., 1640.,
      1408., 1680., 1440., 1720., 1632., 1960., 1664., 2000., 1696., 2040.,
      1728., 2080., 1760., 2120., 1792., 2160., 1824., 2200., 2016., 2440.,
      2048., 2480., 2080., 2520., 2112., 2560., 2144., 2600., 2176., 2640.,
      2208., 2680., 2400., 2920., 2432., 2960., 2464., 3000., 2496., 3040.,
      2528., 3080., 2560., 3120., 2592., 3160., 2784., 3400., 2816., 3440.,
      2848., 3480., 2880., 3520., 2912., 3560., 2944., 3600., 2976., 3640.,
      3168., 3880., 3200., 3920., 3232., 3960., 3264., 4000., 3296., 4040.,
      3328., 4080., 3360., 4120., 3552., 4360., 3584., 4400., 3616., 4440.,
      3648., 4480., 3680., 4520., 3712., 4560., 3744., 4600.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      14284., 14808., 15440., 15968., 19658., 20432., 21356., 22136., 19934.,
      20720., 21656., 22448., 20210., 21008., 21956., 22760., 20486., 21296.,
      22256., 23072., 12356., 12888., 13512., 14048., 12524., 13064., 13696.,
      14240., 16854., 17496., 18264., 18912., 23169., 24114., 25230., 26184.,
      23475., 24438., 25572., 26544., 23781., 24762., 25914., 26904., 24087.,
      25086., 26256., 27264., 14466., 15120., 15876., 16536., 14646., 15312.,
      16080., 16752., 19590., 20376., 21288., 22080., 26841., 28002., 29334.,
      30504., 27147., 28326., 29676., 30864., 27453., 28650., 30018., 31224.,
      27759., 28974., 30360., 31584., 16626., 17424., 18324., 19128., 16806.,
      17616., 18528., 19344., 22326., 23256., 24312., 25248., 30513., 31890.,
      33438., 34824., 30819., 32214., 33780., 35184., 31125., 32538., 34122.,
      35544., 31431., 32862., 34464., 35904., 18786., 19728., 20772., 21720.,
      18966., 19920., 20976., 21936., 25062., 26136., 27336., 28416., 34185.,
      35778., 37542., 39144., 34491., 36102., 37884., 39504., 34797., 36426.,
      38226., 39864., 35103., 36750., 38568., 40224., 20946., 22032., 23220.,
      24312., 21126., 22224., 23424., 24528., 9244.,  9864.,  10544., 11168.,
      11954., 12872., 13868., 14792., 12086., 13016., 14024., 14960., 12218.,
      13160., 14180., 15128., 12350., 13304., 14336., 15296., 6836.,  7464.,
      8136.,  8768.,  6908.,  7544.,  8224.,  8864.,  10492., 11208., 11984.,
      12704., 13538., 14600., 15740., 16808., 13670., 14744., 15896., 16976.,
      13802., 14888., 16052., 17144., 13934., 15032., 16208., 17312., 7700.,
      8424.,  9192.,  9920.,  7772.,  8504.,  9280.,  10016.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2284., 2496., 2744., 2960., 2340., 2560., 2816., 3040., 2396., 2624.,
      2888., 3120., 2452., 2688., 2960., 3200., 2508., 2752., 3032., 3280.,
      2564., 2816., 3104., 3360., 2620., 2880., 3176., 3440., 2956., 3264.,
      3608., 3920., 3012., 3328., 3680., 4000., 3068., 3392., 3752., 4080.,
      3124., 3456., 3824., 4160., 3180., 3520., 3896., 4240., 3236., 3584.,
      3968., 4320., 3292., 3648., 4040., 4400., 3628., 4032., 4472., 4880.,
      3684., 4096., 4544., 4960., 3740., 4160., 4616., 5040., 3796., 4224.,
      4688., 5120., 3852., 4288., 4760., 5200., 3908., 4352., 4832., 5280.,
      3964., 4416., 4904., 5360., 4300., 4800., 5336., 5840., 4356., 4864.,
      5408., 5920., 4412., 4928., 5480., 6000., 4468., 4992., 5552., 6080.,
      4524., 5056., 5624., 6160., 4580., 5120., 5696., 6240., 4636., 5184.,
      5768., 6320., 4972., 5568., 6200., 6800., 5028., 5632., 6272., 6880.,
      5084., 5696., 6344., 6960., 5140., 5760., 6416., 7040., 5196., 5824.,
      6488., 7120., 5252., 5888., 6560., 7200., 5308., 5952., 6632., 7280.,
      5644., 6336., 7064., 7760., 5700., 6400., 7136., 7840., 5756., 6464.,
      7208., 7920., 5812., 6528., 7280., 8000., 5868., 6592., 7352., 8080.,
      5924., 6656., 7424., 8160., 5980., 6720., 7496., 8240., 6316., 7104.,
      7928., 8720., 6372., 7168., 8000., 8800., 6428., 7232., 8072., 8880.,
      6484., 7296., 8144., 8960., 6540., 7360., 8216., 9040., 6596., 7424.,
      8288., 9120., 6652., 7488., 8360., 9200.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      28044., 28568., 29092., 29616., 30352., 30880., 31408., 31936., 38542.,
      39316., 40090., 40864., 41932., 42712., 43492., 44272., 39082., 39868.,
      40654., 41440., 42520., 43312., 44104., 44896., 39622., 40420., 41218.,
      42016., 43108., 43912., 44716., 45520., 40162., 40972., 41782., 42592.,
      43696., 44512., 45328., 46144., 24180., 24712., 25244., 25776., 26488.,
      27024., 27560., 28096., 24508., 25048., 25588., 26128., 26848., 27392.,
      27936., 28480., 33066., 33708., 34350., 34992., 35880., 36528., 37176.,
      37824., 45393., 46338., 47283., 48228., 49506., 50460., 51414., 52368.,
      45987., 46950., 47913., 48876., 50172., 51144., 52116., 53088., 46581.,
      47562., 48543., 49524., 50838., 51828., 52818., 53808., 47175., 48174.,
      49173., 50172., 51504., 52512., 53520., 54528., 28278., 28932., 29586.,
      30240., 31092., 31752., 32412., 33072., 28626., 29292., 29958., 30624.,
      31488., 32160., 32832., 33504., 38394., 39180., 39966., 40752., 41784.,
      42576., 43368., 44160., 52521., 53682., 54843., 56004., 57498., 58668.,
      59838., 61008., 53115., 54294., 55473., 56652., 58164., 59352., 60540.,
      61728., 53709., 54906., 56103., 57300., 58830., 60036., 61242., 62448.,
      54303., 55518., 56733., 57948., 59496., 60720., 61944., 63168., 32454.,
      33252., 34050., 34848., 35844., 36648., 37452., 38256., 32802., 33612.,
      34422., 35232., 36240., 37056., 37872., 38688., 43722., 44652., 45582.,
      46512., 47688., 48624., 49560., 50496., 59649., 61026., 62403., 63780.,
      65490., 66876., 68262., 69648., 60243., 61638., 63033., 64428., 66156.,
      67560., 68964., 70368., 60837., 62250., 63663., 65076., 66822., 68244.,
      69666., 71088., 61431., 62862., 64293., 65724., 67488., 68928., 70368.,
      71808., 36630., 37572., 38514., 39456., 40596., 41544., 42492., 43440.,
      36978., 37932., 38886., 39840., 40992., 41952., 42912., 43872., 49050.,
      50124., 51198., 52272., 53592., 54672., 55752., 56832., 66777., 68370.,
      69963., 71556., 73482., 75084., 76686., 78288., 67371., 68982., 70593.,
      72204., 74148., 75768., 77388., 79008., 67965., 69594., 71223., 72852.,
      74814., 76452., 78090., 79728., 68559., 70206., 71853., 73500., 75480.,
      77136., 78792., 80448., 40806., 41892., 42978., 44064., 45348., 46440.,
      47532., 48624., 41154., 42252., 43350., 44448., 45744., 46848., 47952.,
      49056., 17868., 18488., 19108., 19728., 20464., 21088., 21712., 22336.,
      22990., 23908., 24826., 25744., 26812., 27736., 28660., 29584., 23242.,
      24172., 25102., 26032., 27112., 28048., 28984., 29920., 23494., 24436.,
      25378., 26320., 27412., 28360., 29308., 30256., 23746., 24700., 25654.,
      26608., 27712., 28672., 29632., 30592., 13044., 13672., 14300., 14928.,
      15640., 16272., 16904., 17536., 13180., 13816., 14452., 15088., 15808.,
      16448., 17088., 17728., 20268., 20984., 21700., 22416., 23248., 23968.,
      24688., 25408., 26014., 27076., 28138., 29200., 30412., 31480., 32548.,
      33616., 26266., 27340., 28414., 29488., 30712., 31792., 32872., 33952.,
      26518., 27604., 28690., 29776., 31012., 32104., 33196., 34288., 26770.,
      27868., 28966., 30064., 31312., 32416., 33520., 34624., 14676., 15400.,
      16124., 16848., 17656., 18384., 19112., 19840., 14812., 15544., 16276.,
      17008., 17824., 18560., 19296., 20032.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4356.,  4568.,  4780.,  4992.,  5272.,  5488.,  5704.,  5920.,  4460.,
      4680.,  4900.,  5120.,  5408.,  5632.,  5856.,  6080.,  4564.,  4792.,
      5020.,  5248.,  5544.,  5776.,  6008.,  6240.,  4668.,  4904.,  5140.,
      5376.,  5680.,  5920.,  6160.,  6400.,  4772.,  5016.,  5260.,  5504.,
      5816.,  6064.,  6312.,  6560.,  4876.,  5128.,  5380.,  5632.,  5952.,
      6208.,  6464.,  6720.,  4980.,  5240.,  5500.,  5760.,  6088.,  6352.,
      6616.,  6880.,  5604.,  5912.,  6220.,  6528.,  6904.,  7216.,  7528.,
      7840.,  5708.,  6024.,  6340.,  6656.,  7040.,  7360.,  7680.,  8000.,
      5812.,  6136.,  6460.,  6784.,  7176.,  7504.,  7832.,  8160.,  5916.,
      6248.,  6580.,  6912.,  7312.,  7648.,  7984.,  8320.,  6020.,  6360.,
      6700.,  7040.,  7448.,  7792.,  8136.,  8480.,  6124.,  6472.,  6820.,
      7168.,  7584.,  7936.,  8288.,  8640.,  6228.,  6584.,  6940.,  7296.,
      7720.,  8080.,  8440.,  8800.,  6852.,  7256.,  7660.,  8064.,  8536.,
      8944.,  9352.,  9760.,  6956.,  7368.,  7780.,  8192.,  8672.,  9088.,
      9504.,  9920.,  7060.,  7480.,  7900.,  8320.,  8808.,  9232.,  9656.,
      10080., 7164.,  7592.,  8020.,  8448.,  8944.,  9376.,  9808.,  10240.,
      7268.,  7704.,  8140.,  8576.,  9080.,  9520.,  9960.,  10400., 7372.,
      7816.,  8260.,  8704.,  9216.,  9664.,  10112., 10560., 7476.,  7928.,
      8380.,  8832.,  9352.,  9808.,  10264., 10720., 8100.,  8600.,  9100.,
      9600.,  10168., 10672., 11176., 11680., 8204.,  8712.,  9220.,  9728.,
      10304., 10816., 11328., 11840., 8308.,  8824.,  9340.,  9856.,  10440.,
      10960., 11480., 12000., 8412.,  8936.,  9460.,  9984.,  10576., 11104.,
      11632., 12160., 8516.,  9048.,  9580.,  10112., 10712., 11248., 11784.,
      12320., 8620.,  9160.,  9700.,  10240., 10848., 11392., 11936., 12480.,
      8724.,  9272.,  9820.,  10368., 10984., 11536., 12088., 12640., 9348.,
      9944.,  10540., 11136., 11800., 12400., 13000., 13600., 9452.,  10056.,
      10660., 11264., 11936., 12544., 13152., 13760., 9556.,  10168., 10780.,
      11392., 12072., 12688., 13304., 13920., 9660.,  10280., 10900., 11520.,
      12208., 12832., 13456., 14080., 9764.,  10392., 11020., 11648., 12344.,
      12976., 13608., 14240., 9868.,  10504., 11140., 11776., 12480., 13120.,
      13760., 14400., 9972.,  10616., 11260., 11904., 12616., 13264., 13912.,
      14560., 10596., 11288., 11980., 12672., 13432., 14128., 14824., 15520.,
      10700., 11400., 12100., 12800., 13568., 14272., 14976., 15680., 10804.,
      11512., 12220., 12928., 13704., 14416., 15128., 15840., 10908., 11624.,
      12340., 13056., 13840., 14560., 15280., 16000., 11012., 11736., 12460.,
      13184., 13976., 14704., 15432., 16160., 11116., 11848., 12580., 13312.,
      14112., 14848., 15584., 16320., 11220., 11960., 12700., 13440., 14248.,
      14992., 15736., 16480., 11844., 12632., 13420., 14208., 15064., 15856.,
      16648., 17440., 11948., 12744., 13540., 14336., 15200., 16000., 16800.,
      17600., 12052., 12856., 13660., 14464., 15336., 16144., 16952., 17760.,
      12156., 12968., 13780., 14592., 15472., 16288., 17104., 17920., 12260.,
      13080., 13900., 14720., 15608., 16432., 17256., 18080., 12364., 13192.,
      14020., 14848., 15744., 16576., 17408., 18240., 12468., 13304., 14140.,
      14976., 15880., 16720., 17560., 18400.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      28468., 29616., 30772., 31936., 39178., 40864., 42562., 44272., 39730.,
      41440., 43162., 44896., 40282., 42016., 43762., 45520., 40834., 42592.,
      44362., 46144., 24628., 25776., 26932., 28096., 24964., 26128., 27300.,
      28480., 33594., 34992., 36402., 37824., 46185., 48228., 50289., 52368.,
      46797., 48876., 50973., 53088., 47409., 49524., 51657., 53808., 48021.,
      50172., 52341., 54528., 28842., 30240., 31650., 33072., 29202., 30624.,
      32058., 33504., 39066., 40752., 42450., 44160., 53529., 56004., 58497.,
      61008., 54141., 56652., 59181., 61728., 54753., 57300., 59865., 62448.,
      55365., 57948., 60549., 63168., 33162., 34848., 36546., 38256., 33522.,
      35232., 36954., 38688., 44538., 46512., 48498., 50496., 60873., 63780.,
      66705., 69648., 61485., 64428., 67389., 70368., 62097., 65076., 68073.,
      71088., 62709., 65724., 68757., 71808., 37482., 39456., 41442., 43440.,
      37842., 39840., 41850., 43872., 50010., 52272., 54546., 56832., 68217.,
      71556., 74913., 78288., 68829., 72204., 75597., 79008., 69441., 72852.,
      76281., 79728., 70053., 73500., 76965., 80448., 41802., 44064., 46338.,
      48624., 42162., 44448., 46746., 49056., 18436., 19728., 21028., 22336.,
      23842., 25744., 27658., 29584., 24106., 26032., 27970., 29920., 24370.,
      26320., 28282., 30256., 24634., 26608., 28594., 30592., 13636., 14928.,
      16228., 17536., 13780., 15088., 16404., 17728., 20932., 22416., 23908.,
      25408., 27010., 29200., 31402., 33616., 27274., 29488., 31714., 33952.,
      27538., 29776., 32026., 34288., 27802., 30064., 32338., 34624., 15364.,
      16848., 18340., 19840., 15508., 17008., 18516., 20032.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4540.,  4992.,  5452.,  5920.,  4652.,  5120.,  5596.,  6080.,  4764.,
      5248.,  5740.,  6240.,  4876.,  5376.,  5884.,  6400.,  4988.,  5504.,
      6028.,  6560.,  5100.,  5632.,  6172.,  6720.,  5212.,  5760.,  6316.,
      6880.,  5884.,  6528.,  7180.,  7840.,  5996.,  6656.,  7324.,  8000.,
      6108.,  6784.,  7468.,  8160.,  6220.,  6912.,  7612.,  8320.,  6332.,
      7040.,  7756.,  8480.,  6444.,  7168.,  7900.,  8640.,  6556.,  7296.,
      8044.,  8800.,  7228.,  8064.,  8908.,  9760.,  7340.,  8192.,  9052.,
      9920.,  7452.,  8320.,  9196.,  10080., 7564.,  8448.,  9340.,  10240.,
      7676.,  8576.,  9484.,  10400., 7788.,  8704.,  9628.,  10560., 7900.,
      8832.,  9772.,  10720., 8572.,  9600.,  10636., 11680., 8684.,  9728.,
      10780., 11840., 8796.,  9856.,  10924., 12000., 8908.,  9984.,  11068.,
      12160., 9020.,  10112., 11212., 12320., 9132.,  10240., 11356., 12480.,
      9244.,  10368., 11500., 12640., 9916.,  11136., 12364., 13600., 10028.,
      11264., 12508., 13760., 10140., 11392., 12652., 13920., 10252., 11520.,
      12796., 14080., 10364., 11648., 12940., 14240., 10476., 11776., 13084.,
      14400., 10588., 11904., 13228., 14560., 11260., 12672., 14092., 15520.,
      11372., 12800., 14236., 15680., 11484., 12928., 14380., 15840., 11596.,
      13056., 14524., 16000., 11708., 13184., 14668., 16160., 11820., 13312.,
      14812., 16320., 11932., 13440., 14956., 16480., 12604., 14208., 15820.,
      17440., 12716., 14336., 15964., 17600., 12828., 14464., 16108., 17760.,
      12940., 14592., 16252., 17920., 13052., 14720., 16396., 18080., 13164.,
      14848., 16540., 18240., 13276., 14976., 16684., 18400.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      55892.,  56936.,  58184.,  59232.,  60492.,  61544.,  62816.,  63872.,
      76814.,  78356.,  80180.,  81728.,  83570.,  85124.,  86984.,  88544.,
      77894.,  79460.,  81308.,  82880.,  84746.,  86324.,  88208.,  89792.,
      78974.,  80564.,  82436.,  84032.,  85922.,  87524.,  89432.,  91040.,
      80054.,  81668.,  83564.,  85184.,  87098.,  88724.,  90656.,  92288.,
      48196.,  49256.,  50488.,  51552.,  52796.,  53864.,  55120.,  56192.,
      48852.,  49928.,  51176.,  52256.,  53516.,  54600.,  55872.,  56960.,
      65910.,  67188.,  68700.,  69984.,  71514.,  72804.,  74352.,  75648.,
      90489.,  92370.,  94566.,  96456.,  98679.,  100578., 102828., 104736.,
      91677.,  93594.,  95826.,  97752.,  100011., 101946., 104232., 106176.,
      92865.,  94818.,  97086.,  99048.,  101343., 103314., 105636., 107616.,
      94053.,  96042.,  98346.,  100344., 102675., 104682., 107040., 109056.,
      56382.,  57684.,  59172.,  60480.,  61986.,  63300.,  64824.,  66144.,
      57078.,  58404.,  59916.,  61248.,  62778.,  64116.,  65664.,  67008.,
      76566.,  78132.,  79932.,  81504.,  83322.,  84900.,  86736.,  88320.,
      104745., 107058., 109686., 112008., 114663., 116994., 119676., 122016.,
      105933., 108282., 110946., 113304., 115995., 118362., 121080., 123456.,
      107121., 109506., 112206., 114600., 117327., 119730., 122484., 124896.,
      108309., 110730., 113466., 115896., 118659., 121098., 123888., 126336.,
      64734.,  66324.,  68100.,  69696.,  71490.,  73092.,  74904.,  76512.,
      65430.,  67044.,  68844.,  70464.,  72282.,  73908.,  75744.,  77376.,
      87222.,  89076.,  91164.,  93024.,  95130.,  96996.,  99120.,  100992.,
      119001., 121746., 124806., 127560., 130647., 133410., 136524., 139296.,
      120189., 122970., 126066., 128856., 131979., 134778., 137928., 140736.,
      121377., 124194., 127326., 130152., 133311., 136146., 139332., 142176.,
      122565., 125418., 128586., 131448., 134643., 137514., 140736., 143616.,
      73086.,  74964.,  77028.,  78912.,  80994.,  82884.,  84984.,  86880.,
      73782.,  75684.,  77772.,  79680.,  81786.,  83700.,  85824.,  87744.,
      97878.,  100020., 102396., 104544., 106938., 109092., 111504., 113664.,
      133257., 136434., 139926., 143112., 146631., 149826., 153372., 156576.,
      134445., 137658., 141186., 144408., 147963., 151194., 154776., 158016.,
      135633., 138882., 142446., 145704., 149295., 152562., 156180., 159456.,
      136821., 140106., 143706., 147000., 150627., 153930., 157584., 160896.,
      81438.,  83604.,  85956.,  88128.,  90498.,  92676.,  95064.,  97248.,
      82134.,  84324.,  86700.,  88896.,  91290.,  93492.,  95904.,  98112.,
      35636.,  36872.,  38216.,  39456.,  40812.,  42056.,  43424.,  44672.,
      45854.,  47684.,  49652.,  51488.,  53474.,  55316.,  57320.,  59168.,
      46358.,  48212.,  50204.,  52064.,  54074.,  55940.,  57968.,  59840.,
      46862.,  48740.,  50756.,  52640.,  54674.,  56564.,  58616.,  60512.,
      47366.,  49268.,  51308.,  53216.,  55274.,  57188.,  59264.,  61184.,
      26020.,  27272.,  28600.,  29856.,  31196.,  32456.,  33808.,  35072.,
      26292.,  27560.,  28904.,  30176.,  31532.,  32808.,  34176.,  35456.,
      40436.,  41864.,  43400.,  44832.,  46380.,  47816.,  49376.,  50816.,
      51902.,  54020.,  56276.,  58400.,  60674.,  62804.,  65096.,  67232.,
      52406.,  54548.,  56828.,  58976.,  61274.,  63428.,  65744.,  67904.,
      52910.,  55076.,  57380.,  59552.,  61874.,  64052.,  66392.,  68576.,
      53414.,  55604.,  57932.,  60128.,  62474.,  64676.,  67040.,  69248.,
      29284.,  30728.,  32248.,  33696.,  35228.,  36680.,  38224.,  39680.,
      29556.,  31016.,  32552.,  34016.,  35564.,  37032.,  38592.,  40064.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8660.,  9080.,  9560.,  9984.,  10476., 10904., 11408., 11840., 8868.,
      9304.,  9800.,  10240., 10748., 11192., 11712., 12160., 9076.,  9528.,
      10040., 10496., 11020., 11480., 12016., 12480., 9284.,  9752.,  10280.,
      10752., 11292., 11768., 12320., 12800., 9492.,  9976.,  10520., 11008.,
      11564., 12056., 12624., 13120., 9700.,  10200., 10760., 11264., 11836.,
      12344., 12928., 13440., 9908.,  10424., 11000., 11520., 12108., 12632.,
      13232., 13760., 11156., 11768., 12440., 13056., 13740., 14360., 15056.,
      15680., 11364., 11992., 12680., 13312., 14012., 14648., 15360., 16000.,
      11572., 12216., 12920., 13568., 14284., 14936., 15664., 16320., 11780.,
      12440., 13160., 13824., 14556., 15224., 15968., 16640., 11988., 12664.,
      13400., 14080., 14828., 15512., 16272., 16960., 12196., 12888., 13640.,
      14336., 15100., 15800., 16576., 17280., 12404., 13112., 13880., 14592.,
      15372., 16088., 16880., 17600., 13652., 14456., 15320., 16128., 17004.,
      17816., 18704., 19520., 13860., 14680., 15560., 16384., 17276., 18104.,
      19008., 19840., 14068., 14904., 15800., 16640., 17548., 18392., 19312.,
      20160., 14276., 15128., 16040., 16896., 17820., 18680., 19616., 20480.,
      14484., 15352., 16280., 17152., 18092., 18968., 19920., 20800., 14692.,
      15576., 16520., 17408., 18364., 19256., 20224., 21120., 14900., 15800.,
      16760., 17664., 18636., 19544., 20528., 21440., 16148., 17144., 18200.,
      19200., 20268., 21272., 22352., 23360., 16356., 17368., 18440., 19456.,
      20540., 21560., 22656., 23680., 16564., 17592., 18680., 19712., 20812.,
      21848., 22960., 24000., 16772., 17816., 18920., 19968., 21084., 22136.,
      23264., 24320., 16980., 18040., 19160., 20224., 21356., 22424., 23568.,
      24640., 17188., 18264., 19400., 20480., 21628., 22712., 23872., 24960.,
      17396., 18488., 19640., 20736., 21900., 23000., 24176., 25280., 18644.,
      19832., 21080., 22272., 23532., 24728., 26000., 27200., 18852., 20056.,
      21320., 22528., 23804., 25016., 26304., 27520., 19060., 20280., 21560.,
      22784., 24076., 25304., 26608., 27840., 19268., 20504., 21800., 23040.,
      24348., 25592., 26912., 28160., 19476., 20728., 22040., 23296., 24620.,
      25880., 27216., 28480., 19684., 20952., 22280., 23552., 24892., 26168.,
      27520., 28800., 19892., 21176., 22520., 23808., 25164., 26456., 27824.,
      29120., 21140., 22520., 23960., 25344., 26796., 28184., 29648., 31040.,
      21348., 22744., 24200., 25600., 27068., 28472., 29952., 31360., 21556.,
      22968., 24440., 25856., 27340., 28760., 30256., 31680., 21764., 23192.,
      24680., 26112., 27612., 29048., 30560., 32000., 21972., 23416., 24920.,
      26368., 27884., 29336., 30864., 32320., 22180., 23640., 25160., 26624.,
      28156., 29624., 31168., 32640., 22388., 23864., 25400., 26880., 28428.,
      29912., 31472., 32960., 23636., 25208., 26840., 28416., 30060., 31640.,
      33296., 34880., 23844., 25432., 27080., 28672., 30332., 31928., 33600.,
      35200., 24052., 25656., 27320., 28928., 30604., 32216., 33904., 35520.,
      24260., 25880., 27560., 29184., 30876., 32504., 34208., 35840., 24468.,
      26104., 27800., 29440., 31148., 32792., 34512., 36160., 24676., 26328.,
      28040., 29696., 31420., 33080., 34816., 36480., 24884., 26552., 28280.,
      29952., 31692., 33368., 35120., 36800.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      110740., 111784., 112828., 113872., 115320., 116368., 117416., 118464.,
      119932., 120984., 122036., 123088., 124576., 125632., 126688., 127744.,
      152086., 153628., 155170., 156712., 158812., 160360., 161908., 163456.,
      165586., 167140., 168694., 170248., 172408., 173968., 175528., 177088.,
      154222., 155788., 157354., 158920., 161044., 162616., 164188., 165760.,
      167914., 169492., 171070., 172648., 174832., 176416., 178000., 179584.,
      156358., 157948., 159538., 161128., 163276., 164872., 166468., 168064.,
      170242., 171844., 173446., 175048., 177256., 178864., 180472., 182080.,
      158494., 160108., 161722., 163336., 165508., 167128., 168748., 170368.,
      172570., 174196., 175822., 177448., 179680., 181312., 182944., 184576.,
      95332.,  96392.,  97452.,  98512.,  99912.,  100976., 102040., 103104.,
      104524., 105592., 106660., 107728., 109168., 110240., 111312., 112384.,
      96628.,  97704.,  98780.,  99856.,  101272., 102352., 103432., 104512.,
      105948., 107032., 108116., 109200., 110656., 111744., 112832., 113920.,
      130542., 131820., 133098., 134376., 136116., 137400., 138684., 139968.,
      141738., 143028., 144318., 145608., 147408., 148704., 150000., 151296.,
      179097., 180978., 182859., 184740., 187242., 189132., 191022., 192912.,
      195459., 197358., 199257., 201156., 203748., 205656., 207564., 209472.,
      181437., 183354., 185271., 187188., 189726., 191652., 193578., 195504.,
      198087., 200022., 201957., 203892., 206520., 208464., 210408., 212352.,
      183777., 185730., 187683., 189636., 192210., 194172., 196134., 198096.,
      200715., 202686., 204657., 206628., 209292., 211272., 213252., 215232.,
      186117., 188106., 190095., 192084., 194694., 196692., 198690., 200688.,
      203343., 205350., 207357., 209364., 212064., 214080., 216096., 218112.,
      111462., 112764., 114066., 115368., 117036., 118344., 119652., 120960.,
      122658., 123972., 125286., 126600., 128328., 129648., 130968., 132288.,
      112830., 114156., 115482., 116808., 118500., 119832., 121164., 122496.,
      124218., 125556., 126894., 128232., 129984., 131328., 132672., 134016.,
      151566., 153132., 154698., 156264., 158292., 159864., 161436., 163008.,
      165066., 166644., 168222., 169800., 171888., 173472., 175056., 176640.,
      207177., 209490., 211803., 214116., 217050., 219372., 221694., 224016.,
      226995., 229326., 231657., 233988., 237012., 239352., 241692., 244032.,
      209517., 211866., 214215., 216564., 219534., 221892., 224250., 226608.,
      229623., 231990., 234357., 236724., 239784., 242160., 244536., 246912.,
      211857., 214242., 216627., 219012., 222018., 224412., 226806., 229200.,
      232251., 234654., 237057., 239460., 242556., 244968., 247380., 249792.,
      214197., 216618., 219039., 221460., 224502., 226932., 229362., 231792.,
      234879., 237318., 239757., 242196., 245328., 247776., 250224., 252672.,
      127878., 129468., 131058., 132648., 134604., 136200., 137796., 139392.,
      141378., 142980., 144582., 146184., 148200., 149808., 151416., 153024.,
      129246., 130860., 132474., 134088., 136068., 137688., 139308., 140928.,
      142938., 144564., 146190., 147816., 149856., 151488., 153120., 154752.,
      172590., 174444., 176298., 178152., 180468., 182328., 184188., 186048.,
      188394., 190260., 192126., 193992., 196368., 198240., 200112., 201984.,
      235257., 238002., 240747., 243492., 246858., 249612., 252366., 255120.,
      258531., 261294., 264057., 266820., 270276., 273048., 275820., 278592.,
      237597., 240378., 243159., 245940., 249342., 252132., 254922., 257712.,
      261159., 263958., 266757., 269556., 273048., 275856., 278664., 281472.,
      239937., 242754., 245571., 248388., 251826., 254652., 257478., 260304.,
      263787., 266622., 269457., 272292., 275820., 278664., 281508., 284352.,
      242277., 245130., 247983., 250836., 254310., 257172., 260034., 262896.,
      266415., 269286., 272157., 275028., 278592., 281472., 284352., 287232.,
      144294., 146172., 148050., 149928., 152172., 154056., 155940., 157824.,
      160098., 161988., 163878., 165768., 168072., 169968., 171864., 173760.,
      145662., 147564., 149466., 151368., 153636., 155544., 157452., 159360.,
      161658., 163572., 165486., 167400., 169728., 171648., 173568., 175488.,
      193614., 195756., 197898., 200040., 202644., 204792., 206940., 209088.,
      211722., 213876., 216030., 218184., 220848., 223008., 225168., 227328.,
      263337., 266514., 269691., 272868., 276666., 279852., 283038., 286224.,
      290067., 293262., 296457., 299652., 303540., 306744., 309948., 313152.,
      265677., 268890., 272103., 275316., 279150., 282372., 285594., 288816.,
      292695., 295926., 299157., 302388., 306312., 309552., 312792., 316032.,
      268017., 271266., 274515., 277764., 281634., 284892., 288150., 291408.,
      295323., 298590., 301857., 305124., 309084., 312360., 315636., 318912.,
      270357., 273642., 276927., 280212., 284118., 287412., 290706., 294000.,
      297951., 301254., 304557., 307860., 311856., 315168., 318480., 321792.,
      160710., 162876., 165042., 167208., 169740., 171912., 174084., 176256.,
      178818., 180996., 183174., 185352., 187944., 190128., 192312., 194496.,
      162078., 164268., 166458., 168648., 171204., 173400., 175596., 177792.,
      180378., 182580., 184782., 186984., 189600., 191808., 194016., 196224.,
      70036.,  71272.,  72508.,  73744.,  75192.,  76432.,  77672.,  78912.,
      80380.,  81624.,  82868.,  84112.,  85600.,  86848.,  88096.,  89344.,
      89878.,  91708.,  93538.,  95368.,  97468.,  99304.,  101140., 102976.,
      105106., 106948., 108790., 110632., 112792., 114640., 116488., 118336.,
      90862.,  92716.,  94570.,  96424.,  98548.,  100408., 102268., 104128.,
      106282., 108148., 110014., 111880., 114064., 115936., 117808., 119680.,
      91846.,  93724.,  95602.,  97480.,  99628.,  101512., 103396., 105280.,
      107458., 109348., 111238., 113128., 115336., 117232., 119128., 121024.,
      92830.,  94732.,  96634.,  98536.,  100708., 102616., 104524., 106432.,
      108634., 110548., 112462., 114376., 116608., 118528., 120448., 122368.,
      50788.,  52040.,  53292.,  54544.,  55944.,  57200.,  58456.,  59712.,
      61132.,  62392.,  63652.,  64912.,  66352.,  67616.,  68880.,  70144.,
      51316.,  52584.,  53852.,  55120.,  56536.,  57808.,  59080.,  60352.,
      61788.,  63064.,  64340.,  65616.,  67072.,  68352.,  69632.,  70912.,
      79444.,  80872.,  82300.,  83728.,  85368.,  86800.,  88232.,  89664.,
      91324.,  92760.,  94196.,  95632.,  97312.,  98752.,  100192., 101632.,
      101686., 103804., 105922., 108040., 110428., 112552., 114676., 116800.,
      119218., 121348., 123478., 125608., 128056., 130192., 132328., 134464.,
      102670., 104812., 106954., 109096., 111508., 113656., 115804., 117952.,
      120394., 122548., 124702., 126856., 129328., 131488., 133648., 135808.,
      103654., 105820., 107986., 110152., 112588., 114760., 116932., 119104.,
      121570., 123748., 125926., 128104., 130600., 132784., 134968., 137152.,
      104638., 106828., 109018., 111208., 113668., 115864., 118060., 120256.,
      122746., 124948., 127150., 129352., 131872., 134080., 136288., 138496.,
      57124.,  58568.,  60012.,  61456.,  63048.,  64496.,  65944.,  67392.,
      69004.,  70456.,  71908.,  73360.,  74992.,  76448.,  77904.,  79360.,
      57652.,  59112.,  60572.,  62032.,  63640.,  65104.,  66568.,  68032.,
      69660.,  71128.,  72596.,  74064.,  75712.,  77184.,  78656.,  80128.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      16900., 17320., 17740., 18160., 18696., 19120., 19544., 19968., 20524.,
      20952., 21380., 21808., 22384., 22816., 23248., 23680., 17300., 17736.,
      18172., 18608., 19160., 19600., 20040., 20480., 21052., 21496., 21940.,
      22384., 22976., 23424., 23872., 24320., 17700., 18152., 18604., 19056.,
      19624., 20080., 20536., 20992., 21580., 22040., 22500., 22960., 23568.,
      24032., 24496., 24960., 18100., 18568., 19036., 19504., 20088., 20560.,
      21032., 21504., 22108., 22584., 23060., 23536., 24160., 24640., 25120.,
      25600., 18500., 18984., 19468., 19952., 20552., 21040., 21528., 22016.,
      22636., 23128., 23620., 24112., 24752., 25248., 25744., 26240., 18900.,
      19400., 19900., 20400., 21016., 21520., 22024., 22528., 23164., 23672.,
      24180., 24688., 25344., 25856., 26368., 26880., 19300., 19816., 20332.,
      20848., 21480., 22000., 22520., 23040., 23692., 24216., 24740., 25264.,
      25936., 26464., 26992., 27520., 21700., 22312., 22924., 23536., 24264.,
      24880., 25496., 26112., 26860., 27480., 28100., 28720., 29488., 30112.,
      30736., 31360., 22100., 22728., 23356., 23984., 24728., 25360., 25992.,
      26624., 27388., 28024., 28660., 29296., 30080., 30720., 31360., 32000.,
      22500., 23144., 23788., 24432., 25192., 25840., 26488., 27136., 27916.,
      28568., 29220., 29872., 30672., 31328., 31984., 32640., 22900., 23560.,
      24220., 24880., 25656., 26320., 26984., 27648., 28444., 29112., 29780.,
      30448., 31264., 31936., 32608., 33280., 23300., 23976., 24652., 25328.,
      26120., 26800., 27480., 28160., 28972., 29656., 30340., 31024., 31856.,
      32544., 33232., 33920., 23700., 24392., 25084., 25776., 26584., 27280.,
      27976., 28672., 29500., 30200., 30900., 31600., 32448., 33152., 33856.,
      34560., 24100., 24808., 25516., 26224., 27048., 27760., 28472., 29184.,
      30028., 30744., 31460., 32176., 33040., 33760., 34480., 35200., 26500.,
      27304., 28108., 28912., 29832., 30640., 31448., 32256., 33196., 34008.,
      34820., 35632., 36592., 37408., 38224., 39040., 26900., 27720., 28540.,
      29360., 30296., 31120., 31944., 32768., 33724., 34552., 35380., 36208.,
      37184., 38016., 38848., 39680., 27300., 28136., 28972., 29808., 30760.,
      31600., 32440., 33280., 34252., 35096., 35940., 36784., 37776., 38624.,
      39472., 40320., 27700., 28552., 29404., 30256., 31224., 32080., 32936.,
      33792., 34780., 35640., 36500., 37360., 38368., 39232., 40096., 40960.,
      28100., 28968., 29836., 30704., 31688., 32560., 33432., 34304., 35308.,
      36184., 37060., 37936., 38960., 39840., 40720., 41600., 28500., 29384.,
      30268., 31152., 32152., 33040., 33928., 34816., 35836., 36728., 37620.,
      38512., 39552., 40448., 41344., 42240., 28900., 29800., 30700., 31600.,
      32616., 33520., 34424., 35328., 36364., 37272., 38180., 39088., 40144.,
      41056., 41968., 42880., 31300., 32296., 33292., 34288., 35400., 36400.,
      37400., 38400., 39532., 40536., 41540., 42544., 43696., 44704., 45712.,
      46720., 31700., 32712., 33724., 34736., 35864., 36880., 37896., 38912.,
      40060., 41080., 42100., 43120., 44288., 45312., 46336., 47360., 32100.,
      33128., 34156., 35184., 36328., 37360., 38392., 39424., 40588., 41624.,
      42660., 43696., 44880., 45920., 46960., 48000., 32500., 33544., 34588.,
      35632., 36792., 37840., 38888., 39936., 41116., 42168., 43220., 44272.,
      45472., 46528., 47584., 48640., 32900., 33960., 35020., 36080., 37256.,
      38320., 39384., 40448., 41644., 42712., 43780., 44848., 46064., 47136.,
      48208., 49280., 33300., 34376., 35452., 36528., 37720., 38800., 39880.,
      40960., 42172., 43256., 44340., 45424., 46656., 47744., 48832., 49920.,
      33700., 34792., 35884., 36976., 38184., 39280., 40376., 41472., 42700.,
      43800., 44900., 46000., 47248., 48352., 49456., 50560., 36100., 37288.,
      38476., 39664., 40968., 42160., 43352., 44544., 45868., 47064., 48260.,
      49456., 50800., 52000., 53200., 54400., 36500., 37704., 38908., 40112.,
      41432., 42640., 43848., 45056., 46396., 47608., 48820., 50032., 51392.,
      52608., 53824., 55040., 36900., 38120., 39340., 40560., 41896., 43120.,
      44344., 45568., 46924., 48152., 49380., 50608., 51984., 53216., 54448.,
      55680., 37300., 38536., 39772., 41008., 42360., 43600., 44840., 46080.,
      47452., 48696., 49940., 51184., 52576., 53824., 55072., 56320., 37700.,
      38952., 40204., 41456., 42824., 44080., 45336., 46592., 47980., 49240.,
      50500., 51760., 53168., 54432., 55696., 56960., 38100., 39368., 40636.,
      41904., 43288., 44560., 45832., 47104., 48508., 49784., 51060., 52336.,
      53760., 55040., 56320., 57600., 38500., 39784., 41068., 42352., 43752.,
      45040., 46328., 47616., 49036., 50328., 51620., 52912., 54352., 55648.,
      56944., 58240., 40900., 42280., 43660., 45040., 46536., 47920., 49304.,
      50688., 52204., 53592., 54980., 56368., 57904., 59296., 60688., 62080.,
      41300., 42696., 44092., 45488., 47000., 48400., 49800., 51200., 52732.,
      54136., 55540., 56944., 58496., 59904., 61312., 62720., 41700., 43112.,
      44524., 45936., 47464., 48880., 50296., 51712., 53260., 54680., 56100.,
      57520., 59088., 60512., 61936., 63360., 42100., 43528., 44956., 46384.,
      47928., 49360., 50792., 52224., 53788., 55224., 56660., 58096., 59680.,
      61120., 62560., 64000., 42500., 43944., 45388., 46832., 48392., 49840.,
      51288., 52736., 54316., 55768., 57220., 58672., 60272., 61728., 63184.,
      64640., 42900., 44360., 45820., 47280., 48856., 50320., 51784., 53248.,
      54844., 56312., 57780., 59248., 60864., 62336., 63808., 65280., 43300.,
      44776., 46252., 47728., 49320., 50800., 52280., 53760., 55372., 56856.,
      58340., 59824., 61456., 62944., 64432., 65920., 45700., 47272., 48844.,
      50416., 52104., 53680., 55256., 56832., 58540., 60120., 61700., 63280.,
      65008., 66592., 68176., 69760., 46100., 47688., 49276., 50864., 52568.,
      54160., 55752., 57344., 59068., 60664., 62260., 63856., 65600., 67200.,
      68800., 70400., 46500., 48104., 49708., 51312., 53032., 54640., 56248.,
      57856., 59596., 61208., 62820., 64432., 66192., 67808., 69424., 71040.,
      46900., 48520., 50140., 51760., 53496., 55120., 56744., 58368., 60124.,
      61752., 63380., 65008., 66784., 68416., 70048., 71680., 47300., 48936.,
      50572., 52208., 53960., 55600., 57240., 58880., 60652., 62296., 63940.,
      65584., 67376., 69024., 70672., 72320., 47700., 49352., 51004., 52656.,
      54424., 56080., 57736., 59392., 61180., 62840., 64500., 66160., 67968.,
      69632., 71296., 72960., 48100., 49768., 51436., 53104., 54888., 56560.,
      58232., 59904., 61708., 63384., 65060., 66736., 68560., 70240., 71920.,
      73600.};
  const std::array<int, 4> in_shape = {{1, 12, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4510.,  4564.,  5724., 5792., 4048., 4096., 4144., 5337., 5400., 6766.,
      6844.,  4770.,  4824., 4878., 6219., 6282., 7858., 7936., 5526., 5580.,
      5634.,  7101.,  7164., 8950., 9028., 6282., 6336., 6390., 7983., 8046.,
      10042., 10120., 7038., 7092., 7146., 3082., 3112., 3764., 3800., 2536.,
      2560.,  2584.,  3502., 3532., 4268., 4304., 2872., 2896., 2920.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      426.,  436.,  446.,  456.,  466.,  476.,  486.,  566.,  576.,  586.,
      596.,  606.,  616.,  626.,  706.,  716.,  726.,  736.,  746.,  756.,
      766.,  846.,  856.,  866.,  876.,  886.,  896.,  906.,  986.,  996.,
      1006., 1016., 1026., 1036., 1046., 1126., 1136., 1146., 1156., 1166.,
      1176., 1186., 1266., 1276., 1286., 1296., 1306., 1316., 1326.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8558.,  9020.,  8660.,  9128.,  10832., 11448., 10960., 11584., 7634.,
      8096.,  7724.,  8192.,  7814.,  8288.,  10107., 10674., 10224., 10800.,
      12776., 13532., 12920., 13688., 8973.,  9540.,  9072.,  9648.,  9171.,
      9756.,  11745., 12438., 11862., 12564., 14792., 15716., 14936., 15872.,
      10359., 11052., 10458., 11160., 10557., 11268., 13383., 14202., 13500.,
      14328., 16808., 17900., 16952., 18056., 11745., 12564., 11844., 12672.,
      11943., 12780., 15021., 15966., 15138., 16092., 18824., 20084., 18968.,
      20240., 13131., 14076., 13230., 14184., 13329., 14292., 5618.,  6164.,
      5672.,  6224.,  6800.,  7528.,  6864.,  7600.,  4526.,  5072.,  4568.,
      5120.,  4610.,  5168.,  6374.,  7004.,  6428.,  7064.,  7696.,  8536.,
      7760.,  8608.,  5114.,  5744.,  5156.,  5792.,  5198.,  5840.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      728.,  852.,  744.,  872.,  760.,  892.,  776.,  912.,  792.,  932.,
      808.,  952.,  824.,  972.,  952.,  1132., 968.,  1152., 984.,  1172.,
      1000., 1192., 1016., 1212., 1032., 1232., 1048., 1252., 1176., 1412.,
      1192., 1432., 1208., 1452., 1224., 1472., 1240., 1492., 1256., 1512.,
      1272., 1532., 1400., 1692., 1416., 1712., 1432., 1732., 1448., 1752.,
      1464., 1772., 1480., 1792., 1496., 1812., 1624., 1972., 1640., 1992.,
      1656., 2012., 1672., 2032., 1688., 2052., 1704., 2072., 1720., 2092.,
      1848., 2252., 1864., 2272., 1880., 2292., 1896., 2312., 1912., 2332.,
      1928., 2352., 1944., 2372., 2072., 2532., 2088., 2552., 2104., 2572.,
      2120., 2592., 2136., 2612., 2152., 2632., 2168., 2652.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      16654., 17116., 17578., 18040., 16852., 17320., 17788., 18256., 21048.,
      21664., 22280., 22896., 21296., 21920., 22544., 23168., 14806., 15268.,
      15730., 16192., 14980., 15448., 15916., 16384., 15154., 15628., 16102.,
      16576., 19647., 20214., 20781., 21348., 19872., 20448., 21024., 21600.,
      24796., 25552., 26308., 27064., 25072., 25840., 26608., 27376., 17379.,
      17946., 18513., 19080., 17568., 18144., 18720., 19296., 17757., 18342.,
      18927., 19512., 22797., 23490., 24183., 24876., 23022., 23724., 24426.,
      25128., 28660., 29584., 30508., 31432., 28936., 29872., 30808., 31744.,
      20025., 20718., 21411., 22104., 20214., 20916., 21618., 22320., 20403.,
      21114., 21825., 22536., 25947., 26766., 27585., 28404., 26172., 27000.,
      27828., 28656., 32524., 33616., 34708., 35800., 32800., 33904., 35008.,
      36112., 22671., 23490., 24309., 25128., 22860., 23688., 24516., 25344.,
      23049., 23886., 24723., 25560., 29097., 30042., 30987., 31932., 29322.,
      30276., 31230., 32184., 36388., 37648., 38908., 40168., 36664., 37936.,
      39208., 40480., 25317., 26262., 27207., 28152., 25506., 26460., 27414.,
      28368., 25695., 26658., 27621., 28584., 10690., 11236., 11782., 12328.,
      10792., 11344., 11896., 12448., 12872., 13600., 14328., 15056., 12992.,
      13728., 14464., 15200., 8506.,  9052.,  9598.,  10144., 8584.,  9136.,
      9688.,  10240., 8662.,  9220.,  9778.,  10336., 12118., 12748., 13378.,
      14008., 12220., 12856., 13492., 14128., 14552., 15392., 16232., 17072.,
      14672., 15520., 16368., 17216., 9598.,  10228., 10858., 11488., 9676.,
      10312., 10948., 11584., 9754.,  10396., 11038., 11680.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1332., 1456., 1580., 1704., 1360., 1488., 1616., 1744., 1388., 1520.,
      1652., 1784., 1416., 1552., 1688., 1824., 1444., 1584., 1724., 1864.,
      1472., 1616., 1760., 1904., 1500., 1648., 1796., 1944., 1724., 1904.,
      2084., 2264., 1752., 1936., 2120., 2304., 1780., 1968., 2156., 2344.,
      1808., 2000., 2192., 2384., 1836., 2032., 2228., 2424., 1864., 2064.,
      2264., 2464., 1892., 2096., 2300., 2504., 2116., 2352., 2588., 2824.,
      2144., 2384., 2624., 2864., 2172., 2416., 2660., 2904., 2200., 2448.,
      2696., 2944., 2228., 2480., 2732., 2984., 2256., 2512., 2768., 3024.,
      2284., 2544., 2804., 3064., 2508., 2800., 3092., 3384., 2536., 2832.,
      3128., 3424., 2564., 2864., 3164., 3464., 2592., 2896., 3200., 3504.,
      2620., 2928., 3236., 3544., 2648., 2960., 3272., 3584., 2676., 2992.,
      3308., 3624., 2900., 3248., 3596., 3944., 2928., 3280., 3632., 3984.,
      2956., 3312., 3668., 4024., 2984., 3344., 3704., 4064., 3012., 3376.,
      3740., 4104., 3040., 3408., 3776., 4144., 3068., 3440., 3812., 4184.,
      3292., 3696., 4100., 4504., 3320., 3728., 4136., 4544., 3348., 3760.,
      4172., 4584., 3376., 3792., 4208., 4624., 3404., 3824., 4244., 4664.,
      3432., 3856., 4280., 4704., 3460., 3888., 4316., 4744., 3684., 4144.,
      4604., 5064., 3712., 4176., 4640., 5104., 3740., 4208., 4676., 5144.,
      3768., 4240., 4712., 5184., 3796., 4272., 4748., 5224., 3824., 4304.,
      4784., 5264., 3852., 4336., 4820., 5304.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17014., 18040., 17218., 18256., 21536., 22896., 21792., 23168., 15178.,
      16192., 15358., 16384., 15538., 16576., 20097., 21348., 20331., 21600.,
      25408., 27064., 25696., 27376., 17847., 19080., 18045., 19296., 18243.,
      19512., 23373., 24876., 23607., 25128., 29440., 31432., 29728., 31744.,
      20619., 22104., 20817., 22320., 21015., 22536., 26649., 28404., 26883.,
      28656., 33472., 35800., 33760., 36112., 23391., 25128., 23589., 25344.,
      23787., 25560., 29925., 31932., 30159., 32184., 37504., 40168., 37792.,
      40480., 26163., 28152., 26361., 28368., 26559., 28584., 11182., 12328.,
      11290., 12448., 13536., 15056., 13664., 15200., 9010.,  10144., 9094.,
      10240., 9178.,  10336., 12694., 14008., 12802., 14128., 15328., 17072.,
      15456., 17216., 10186., 11488., 10270., 11584., 10354., 11680.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1440., 1704., 1472., 1744., 1504., 1784., 1536., 1824., 1568., 1864.,
      1600., 1904., 1632., 1944., 1888., 2264., 1920., 2304., 1952., 2344.,
      1984., 2384., 2016., 2424., 2048., 2464., 2080., 2504., 2336., 2824.,
      2368., 2864., 2400., 2904., 2432., 2944., 2464., 2984., 2496., 3024.,
      2528., 3064., 2784., 3384., 2816., 3424., 2848., 3464., 2880., 3504.,
      2912., 3544., 2944., 3584., 2976., 3624., 3232., 3944., 3264., 3984.,
      3296., 4024., 3328., 4064., 3360., 4104., 3392., 4144., 3424., 4184.,
      3680., 4504., 3712., 4544., 3744., 4584., 3776., 4624., 3808., 4664.,
      3840., 4704., 3872., 4744., 4128., 5064., 4160., 5104., 4192., 5144.,
      4224., 5184., 4256., 5224., 4288., 5264., 4320., 5304.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      33110., 34028., 35156., 36080., 33506., 34436., 35576., 36512., 41848.,
      43072., 44560., 45792., 42344., 43584., 45088., 46336., 29438., 30356.,
      31460., 32384., 29786., 30716., 31832., 32768., 30134., 31076., 32204.,
      33152., 39069., 40194., 41562., 42696., 39519., 40662., 42048., 43200.,
      49316., 50816., 52616., 54128., 49868., 51392., 53216., 54752., 34569.,
      35694., 37026., 38160., 34947., 36090., 37440., 38592., 35325., 36486.,
      37854., 39024., 45369., 46746., 48366., 49752., 45819., 47214., 48852.,
      50256., 57044., 58880., 61016., 62864., 57596., 59456., 61616., 63488.,
      39861., 41238., 42822., 44208., 40239., 41634., 43236., 44640., 40617.,
      42030., 43650., 45072., 51669., 53298., 55170., 56808., 52119., 53766.,
      55656., 57312., 64772., 66944., 69416., 71600., 65324., 67520., 70016.,
      72224., 45153., 46782., 48618., 50256., 45531., 47178., 49032., 50688.,
      45909., 47574., 49446., 51120., 57969., 59850., 61974., 63864., 58419.,
      60318., 62460., 64368., 72500., 75008., 77816., 80336., 73052., 75584.,
      78416., 80960., 50445., 52326., 54414., 56304., 50823., 52722., 54828.,
      56736., 51201., 53118., 55242., 57168., 21278., 22364., 23564., 24656.,
      21482., 22580., 23792., 24896., 25624., 27072., 28656., 30112., 25864.,
      27328., 28928., 30400., 16934., 18020., 19196., 20288., 17090., 18188.,
      19376., 20480., 17246., 18356., 19556., 20672., 24134., 25388., 26756.,
      28016., 24338., 25604., 26984., 28256., 28984., 30656., 32464., 34144.,
      29224., 30912., 32736., 34432., 19118., 20372., 21716., 22976., 19274.,
      20540., 21896., 23168., 19430., 20708., 22076., 23360.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2636., 2880.,  3160., 3408.,  2692., 2944.,  3232., 3488.,  2748., 3008.,
      3304., 3568.,  2804., 3072.,  3376., 3648.,  2860., 3136.,  3448., 3728.,
      2916., 3200.,  3520., 3808.,  2972., 3264.,  3592., 3888.,  3420., 3776.,
      4168., 4528.,  3476., 3840.,  4240., 4608.,  3532., 3904.,  4312., 4688.,
      3588., 3968.,  4384., 4768.,  3644., 4032.,  4456., 4848.,  3700., 4096.,
      4528., 4928.,  3756., 4160.,  4600., 5008.,  4204., 4672.,  5176., 5648.,
      4260., 4736.,  5248., 5728.,  4316., 4800.,  5320., 5808.,  4372., 4864.,
      5392., 5888.,  4428., 4928.,  5464., 5968.,  4484., 4992.,  5536., 6048.,
      4540., 5056.,  5608., 6128.,  4988., 5568.,  6184., 6768.,  5044., 5632.,
      6256., 6848.,  5100., 5696.,  6328., 6928.,  5156., 5760.,  6400., 7008.,
      5212., 5824.,  6472., 7088.,  5268., 5888.,  6544., 7168.,  5324., 5952.,
      6616., 7248.,  5772., 6464.,  7192., 7888.,  5828., 6528.,  7264., 7968.,
      5884., 6592.,  7336., 8048.,  5940., 6656.,  7408., 8128.,  5996., 6720.,
      7480., 8208.,  6052., 6784.,  7552., 8288.,  6108., 6848.,  7624., 8368.,
      6556., 7360.,  8200., 9008.,  6612., 7424.,  8272., 9088.,  6668., 7488.,
      8344., 9168.,  6724., 7552.,  8416., 9248.,  6780., 7616.,  8488., 9328.,
      6836., 7680.,  8560., 9408.,  6892., 7744.,  8632., 9488.,  7340., 8256.,
      9208., 10128., 7396., 8320.,  9280., 10208., 7452., 8384.,  9352., 10288.,
      7508., 8448.,  9424., 10368., 7564., 8512.,  9496., 10448., 7620., 8576.,
      9568., 10528., 7676., 8640.,  9640., 10608.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      65302.,  66220.,  67138.,  68056.,  69388.,  70312.,  71236.,  72160.,
      66082.,  67012.,  67942.,  68872.,  70216.,  71152.,  72088.,  73024.,
      82472.,  83696.,  84920.,  86144.,  87888.,  89120.,  90352.,  91584.,
      83448.,  84688.,  85928.,  87168.,  88928.,  90176.,  91424.,  92672.,
      57958.,  58876.,  59794.,  60712.,  61996.,  62920.,  63844.,  64768.,
      58642.,  59572.,  60502.,  61432.,  62728.,  63664.,  64600.,  65536.,
      59326.,  60268.,  61210.,  62152.,  63460.,  64408.,  65356.,  66304.,
      77013.,  78138.,  79263.,  80388.,  81990.,  83124.,  84258.,  85392.,
      77895.,  79038.,  80181.,  81324.,  82944.,  84096.,  85248.,  86400.,
      97132.,  98632.,  100132., 101632., 103720., 105232., 106744., 108256.,
      98212.,  99736.,  101260., 102784., 104896., 106432., 107968., 109504.,
      68013.,  69138.,  70263.,  71388.,  72918.,  74052.,  75186.,  76320.,
      68751.,  69894.,  71037.,  72180.,  73728.,  74880.,  76032.,  77184.,
      69489.,  70650.,  71811.,  72972.,  74538.,  75708.,  76878.,  78048.,
      89361.,  90738.,  92115.,  93492.,  95346.,  96732.,  98118.,  99504.,
      90243.,  91638.,  93033.,  94428.,  96300.,  97704.,  99108.,  100512.,
      112252., 114088., 115924., 117760., 120184., 122032., 123880., 125728.,
      113332., 115192., 117052., 118912., 121360., 123232., 125104., 126976.,
      78345.,  79722.,  81099.,  82476.,  84258.,  85644.,  87030.,  88416.,
      79083.,  80478.,  81873.,  83268.,  85068.,  86472.,  87876.,  89280.,
      79821.,  81234.,  82647.,  84060.,  85878.,  87300.,  88722.,  90144.,
      101709., 103338., 104967., 106596., 108702., 110340., 111978., 113616.,
      102591., 104238., 105885., 107532., 109656., 111312., 112968., 114624.,
      127372., 129544., 131716., 133888., 136648., 138832., 141016., 143200.,
      128452., 130648., 132844., 135040., 137824., 140032., 142240., 144448.,
      88677.,  90306.,  91935.,  93564.,  95598.,  97236.,  98874.,  100512.,
      89415.,  91062.,  92709.,  94356.,  96408.,  98064.,  99720.,  101376.,
      90153.,  91818.,  93483.,  95148.,  97218.,  98892.,  100566., 102240.,
      114057., 115938., 117819., 119700., 122058., 123948., 125838., 127728.,
      114939., 116838., 118737., 120636., 123012., 124920., 126828., 128736.,
      142492., 145000., 147508., 150016., 153112., 155632., 158152., 160672.,
      143572., 146104., 148636., 151168., 154288., 156832., 159376., 161920.,
      99009.,  100890., 102771., 104652., 106938., 108828., 110718., 112608.,
      99747.,  101646., 103545., 105444., 107748., 109656., 111564., 113472.,
      100485., 102402., 104319., 106236., 108558., 110484., 112410., 114336.,
      41470.,  42556.,  43642.,  44728.,  46036.,  47128.,  48220.,  49312.,
      41866.,  42964.,  44062.,  45160.,  46480.,  47584.,  48688.,  49792.,
      49800.,  51248.,  52696.,  54144.,  55856.,  57312.,  58768.,  60224.,
      50264.,  51728.,  53192.,  54656.,  56384.,  57856.,  59328.,  60800.,
      32782.,  33868.,  34954.,  36040.,  37300.,  38392.,  39484.,  40576.,
      33082.,  34180.,  35278.,  36376.,  37648.,  38752.,  39856.,  40960.,
      33382.,  34492.,  35602.,  36712.,  37996.,  39112.,  40228.,  41344.,
      47014.,  48268.,  49522.,  50776.,  52252.,  53512.,  54772.,  56032.,
      47410.,  48676.,  49942.,  51208.,  52696.,  53968.,  55240.,  56512.,
      56296.,  57968.,  59640.,  61312.,  63248.,  64928.,  66608.,  68288.,
      56760.,  58448.,  60136.,  61824.,  63776.,  65472.,  67168.,  68864.,
      36982.,  38236.,  39490.,  40744.,  42172.,  43432.,  44692.,  45952.,
      37282.,  38548.,  39814.,  41080.,  42520.,  43792.,  45064.,  46336.,
      37582.,  38860.,  40138.,  41416.,  42868.,  44152.,  45436.,  46720.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5028.,  5272.,  5516.,  5760.,  6072.,  6320.,  6568.,  6816.,  5132.,
      5384.,  5636.,  5888.,  6208.,  6464.,  6720.,  6976.,  5236.,  5496.,
      5756.,  6016.,  6344.,  6608.,  6872.,  7136.,  5340.,  5608.,  5876.,
      6144.,  6480.,  6752.,  7024.,  7296.,  5444.,  5720.,  5996.,  6272.,
      6616.,  6896.,  7176.,  7456.,  5548.,  5832.,  6116.,  6400.,  6752.,
      7040.,  7328.,  7616.,  5652.,  5944.,  6236.,  6528.,  6888.,  7184.,
      7480.,  7776.,  6484.,  6840.,  7196.,  7552.,  7976.,  8336.,  8696.,
      9056.,  6588.,  6952.,  7316.,  7680.,  8112.,  8480.,  8848.,  9216.,
      6692.,  7064.,  7436.,  7808.,  8248.,  8624.,  9000.,  9376.,  6796.,
      7176.,  7556.,  7936.,  8384.,  8768.,  9152.,  9536.,  6900.,  7288.,
      7676.,  8064.,  8520.,  8912.,  9304.,  9696.,  7004.,  7400.,  7796.,
      8192.,  8656.,  9056.,  9456.,  9856.,  7108.,  7512.,  7916.,  8320.,
      8792.,  9200.,  9608.,  10016., 7940.,  8408.,  8876.,  9344.,  9880.,
      10352., 10824., 11296., 8044.,  8520.,  8996.,  9472.,  10016., 10496.,
      10976., 11456., 8148.,  8632.,  9116.,  9600.,  10152., 10640., 11128.,
      11616., 8252.,  8744.,  9236.,  9728.,  10288., 10784., 11280., 11776.,
      8356.,  8856.,  9356.,  9856.,  10424., 10928., 11432., 11936., 8460.,
      8968.,  9476.,  9984.,  10560., 11072., 11584., 12096., 8564.,  9080.,
      9596.,  10112., 10696., 11216., 11736., 12256., 9396.,  9976.,  10556.,
      11136., 11784., 12368., 12952., 13536., 9500.,  10088., 10676., 11264.,
      11920., 12512., 13104., 13696., 9604.,  10200., 10796., 11392., 12056.,
      12656., 13256., 13856., 9708.,  10312., 10916., 11520., 12192., 12800.,
      13408., 14016., 9812.,  10424., 11036., 11648., 12328., 12944., 13560.,
      14176., 9916.,  10536., 11156., 11776., 12464., 13088., 13712., 14336.,
      10020., 10648., 11276., 11904., 12600., 13232., 13864., 14496., 10852.,
      11544., 12236., 12928., 13688., 14384., 15080., 15776., 10956., 11656.,
      12356., 13056., 13824., 14528., 15232., 15936., 11060., 11768., 12476.,
      13184., 13960., 14672., 15384., 16096., 11164., 11880., 12596., 13312.,
      14096., 14816., 15536., 16256., 11268., 11992., 12716., 13440., 14232.,
      14960., 15688., 16416., 11372., 12104., 12836., 13568., 14368., 15104.,
      15840., 16576., 11476., 12216., 12956., 13696., 14504., 15248., 15992.,
      16736., 12308., 13112., 13916., 14720., 15592., 16400., 17208., 18016.,
      12412., 13224., 14036., 14848., 15728., 16544., 17360., 18176., 12516.,
      13336., 14156., 14976., 15864., 16688., 17512., 18336., 12620., 13448.,
      14276., 15104., 16000., 16832., 17664., 18496., 12724., 13560., 14396.,
      15232., 16136., 16976., 17816., 18656., 12828., 13672., 14516., 15360.,
      16272., 17120., 17968., 18816., 12932., 13784., 14636., 15488., 16408.,
      17264., 18120., 18976., 13764., 14680., 15596., 16512., 17496., 18416.,
      19336., 20256., 13868., 14792., 15716., 16640., 17632., 18560., 19488.,
      20416., 13972., 14904., 15836., 16768., 17768., 18704., 19640., 20576.,
      14076., 15016., 15956., 16896., 17904., 18848., 19792., 20736., 14180.,
      15128., 16076., 17024., 18040., 18992., 19944., 20896., 14284., 15240.,
      16196., 17152., 18176., 19136., 20096., 21056., 14388., 15352., 16316.,
      17280., 18312., 19280., 20248., 21216.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66022.,  68056.,  70102.,  72160.,  66814.,  68872.,  70942.,  73024.,
      83448.,  86144.,  88856.,  91584.,  84440.,  87168.,  89912.,  92672.,
      58702.,  60712.,  62734.,  64768.,  59398.,  61432.,  63478.,  65536.,
      60094.,  62152.,  64222.,  66304.,  77913.,  80388.,  82881.,  85392.,
      78813.,  81324.,  83853.,  86400.,  98356.,  101632., 104932., 108256.,
      99460.,  102784., 106132., 109504., 68949.,  71388.,  73845.,  76320.,
      69705.,  72180.,  74673.,  77184.,  70461.,  72972.,  75501.,  78048.,
      90513.,  93492.,  96489.,  99504.,  91413.,  94428.,  97461.,  100512.,
      113812., 117760., 121732., 125728., 114916., 118912., 122932., 126976.,
      79533.,  82476.,  85437.,  88416.,  80289.,  83268.,  86265.,  89280.,
      81045.,  84060.,  87093.,  90144.,  103113., 106596., 110097., 113616.,
      104013., 107532., 111069., 114624., 129268., 133888., 138532., 143200.,
      130372., 135040., 139732., 144448., 90117.,  93564.,  97029.,  100512.,
      90873.,  94356.,  97857.,  101376., 91629.,  95148.,  98685.,  102240.,
      115713., 119700., 123705., 127728., 116613., 120636., 124677., 128736.,
      144724., 150016., 155332., 160672., 145828., 151168., 156532., 161920.,
      100701., 104652., 108621., 112608., 101457., 105444., 109449., 113472.,
      102213., 106236., 110277., 114336., 42454.,  44728.,  47014.,  49312.,
      42862.,  45160.,  47470.,  49792.,  51128.,  54144.,  57176.,  60224.,
      51608.,  54656.,  57720.,  60800.,  33790.,  36040.,  38302.,  40576.,
      34102.,  36376.,  38662.,  40960.,  34414.,  36712.,  39022.,  41344.,
      48166.,  50776.,  53398.,  56032.,  48574.,  51208.,  53854.,  56512.,
      57848.,  61312.,  64792.,  68288.,  58328.,  61824.,  65336.,  68864.,
      38158.,  40744.,  43342.,  45952.,  38470.,  41080.,  43702.,  46336.,
      38782.,  41416.,  44062.,  46720.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5244.,  5760.,  6284.,  6816.,  5356.,  5888.,  6428.,  6976.,  5468.,
      6016.,  6572.,  7136.,  5580.,  6144.,  6716.,  7296.,  5692.,  6272.,
      6860.,  7456.,  5804.,  6400.,  7004.,  7616.,  5916.,  6528.,  7148.,
      7776.,  6812.,  7552.,  8300.,  9056.,  6924.,  7680.,  8444.,  9216.,
      7036.,  7808.,  8588.,  9376.,  7148.,  7936.,  8732.,  9536.,  7260.,
      8064.,  8876.,  9696.,  7372.,  8192.,  9020.,  9856.,  7484.,  8320.,
      9164.,  10016., 8380.,  9344.,  10316., 11296., 8492.,  9472.,  10460.,
      11456., 8604.,  9600.,  10604., 11616., 8716.,  9728.,  10748., 11776.,
      8828.,  9856.,  10892., 11936., 8940.,  9984.,  11036., 12096., 9052.,
      10112., 11180., 12256., 9948.,  11136., 12332., 13536., 10060., 11264.,
      12476., 13696., 10172., 11392., 12620., 13856., 10284., 11520., 12764.,
      14016., 10396., 11648., 12908., 14176., 10508., 11776., 13052., 14336.,
      10620., 11904., 13196., 14496., 11516., 12928., 14348., 15776., 11628.,
      13056., 14492., 15936., 11740., 13184., 14636., 16096., 11852., 13312.,
      14780., 16256., 11964., 13440., 14924., 16416., 12076., 13568., 15068.,
      16576., 12188., 13696., 15212., 16736., 13084., 14720., 16364., 18016.,
      13196., 14848., 16508., 18176., 13308., 14976., 16652., 18336., 13420.,
      15104., 16796., 18496., 13532., 15232., 16940., 18656., 13644., 15360.,
      17084., 18816., 13756., 15488., 17228., 18976., 14652., 16512., 18380.,
      20256., 14764., 16640., 18524., 20416., 14876., 16768., 18668., 20576.,
      14988., 16896., 18812., 20736., 15100., 17024., 18956., 20896., 15212.,
      17152., 19100., 21056., 15324., 17280., 19244., 21216.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      130214., 132044., 134276., 136112., 138362., 140204., 142472., 144320.,
      131774., 133628., 135884., 137744., 140018., 141884., 144176., 146048.,
      164456., 166896., 169840., 172288., 175256., 177712., 180704., 183168.,
      166408., 168880., 171856., 174336., 177336., 179824., 182848., 185344.,
      115574., 117404., 119588., 121424., 123626., 125468., 127688., 129536.,
      116942., 118796., 121004., 122864., 125090., 126956., 129200., 131072.,
      118310., 120188., 122420., 124304., 126554., 128444., 130712., 132608.,
      153585., 155826., 158526., 160776., 163503., 165762., 168516., 170784.,
      155349., 157626., 160362., 162648., 165411., 167706., 170496., 172800.,
      193724., 196712., 200264., 203264., 206852., 209864., 213488., 216512.,
      195884., 198920., 202520., 205568., 209204., 212264., 215936., 219008.,
      135657., 137898., 140526., 142776., 145431., 147690., 150372., 152640.,
      137133., 139410., 142074., 144360., 147051., 149346., 152064., 154368.,
      138609., 140922., 143622., 145944., 148671., 151002., 153756., 156096.,
      178281., 181026., 184230., 186984., 190215., 192978., 196236., 199008.,
      180045., 182826., 186066., 188856., 192123., 194922., 198216., 201024.,
      223964., 227624., 231848., 235520., 239780., 243464., 247760., 251456.,
      226124., 229832., 234104., 237824., 242132., 245864., 250208., 253952.,
      156321., 159066., 162198., 164952., 168111., 170874., 174060., 176832.,
      157797., 160578., 163746., 166536., 169731., 172530., 175752., 178560.,
      159273., 162090., 165294., 168120., 171351., 174186., 177444., 180288.,
      202977., 206226., 209934., 213192., 216927., 220194., 223956., 227232.,
      204741., 208026., 211770., 215064., 218835., 222138., 225936., 229248.,
      254204., 258536., 263432., 267776., 272708., 277064., 282032., 286400.,
      256364., 260744., 265688., 270080., 275060., 279464., 284480., 288896.,
      176985., 180234., 183870., 187128., 190791., 194058., 197748., 201024.,
      178461., 181746., 185418., 188712., 192411., 195714., 199440., 202752.,
      179937., 183258., 186966., 190296., 194031., 197370., 201132., 204480.,
      227673., 231426., 235638., 239400., 243639., 247410., 251676., 255456.,
      229437., 233226., 237474., 241272., 245547., 249354., 253656., 257472.,
      284444., 289448., 295016., 300032., 305636., 310664., 316304., 321344.,
      286604., 291656., 297272., 302336., 307988., 313064., 318752., 323840.,
      197649., 201402., 205542., 209304., 213471., 217242., 221436., 225216.,
      199125., 202914., 207090., 210888., 215091., 218898., 223128., 226944.,
      200601., 204426., 208638., 212472., 216711., 220554., 224820., 228672.,
      82742.,  84908.,  87284.,  89456.,  91850.,  94028.,  96440.,  98624.,
      83534.,  85724.,  88124.,  90320.,  92738.,  94940.,  97376.,  99584.,
      99368.,  102256., 105392., 108288., 111448., 114352., 117536., 120448.,
      100296., 103216., 106384., 109312., 112504., 115440., 118656., 121600.,
      65414.,  67580.,  69908.,  72080.,  74426.,  76604.,  78968.,  81152.,
      66014.,  68204.,  70556.,  72752.,  75122.,  77324.,  79712.,  81920.,
      66614.,  68828.,  71204.,  73424.,  75818.,  78044.,  80456.,  82688.,
      93830.,  96332.,  99044.,  101552., 104282., 106796., 109544., 112064.,
      94622.,  97148.,  99884.,  102416., 105170., 107708., 110480., 113024.,
      112360., 115696., 119280., 122624., 126232., 129584., 133216., 136576.,
      113288., 116656., 120272., 123648., 127288., 130672., 134336., 137728.,
      73814.,  76316.,  78980.,  81488.,  84170.,  86684.,  89384.,  91904.,
      74414.,  76940.,  79628.,  82160.,  84866.,  87404.,  90128.,  92672.,
      75014.,  77564.,  80276.,  82832.,  85562.,  88124.,  90872.,  93440.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10004., 10488., 11032., 11520., 12076., 12568., 13136., 13632., 10212.,
      10712., 11272., 11776., 12348., 12856., 13440., 13952., 10420., 10936.,
      11512., 12032., 12620., 13144., 13744., 14272., 10628., 11160., 11752.,
      12288., 12892., 13432., 14048., 14592., 10836., 11384., 11992., 12544.,
      13164., 13720., 14352., 14912., 11044., 11608., 12232., 12800., 13436.,
      14008., 14656., 15232., 11252., 11832., 12472., 13056., 13708., 14296.,
      14960., 15552., 12916., 13624., 14392., 15104., 15884., 16600., 17392.,
      18112., 13124., 13848., 14632., 15360., 16156., 16888., 17696., 18432.,
      13332., 14072., 14872., 15616., 16428., 17176., 18000., 18752., 13540.,
      14296., 15112., 15872., 16700., 17464., 18304., 19072., 13748., 14520.,
      15352., 16128., 16972., 17752., 18608., 19392., 13956., 14744., 15592.,
      16384., 17244., 18040., 18912., 19712., 14164., 14968., 15832., 16640.,
      17516., 18328., 19216., 20032., 15828., 16760., 17752., 18688., 19692.,
      20632., 21648., 22592., 16036., 16984., 17992., 18944., 19964., 20920.,
      21952., 22912., 16244., 17208., 18232., 19200., 20236., 21208., 22256.,
      23232., 16452., 17432., 18472., 19456., 20508., 21496., 22560., 23552.,
      16660., 17656., 18712., 19712., 20780., 21784., 22864., 23872., 16868.,
      17880., 18952., 19968., 21052., 22072., 23168., 24192., 17076., 18104.,
      19192., 20224., 21324., 22360., 23472., 24512., 18740., 19896., 21112.,
      22272., 23500., 24664., 25904., 27072., 18948., 20120., 21352., 22528.,
      23772., 24952., 26208., 27392., 19156., 20344., 21592., 22784., 24044.,
      25240., 26512., 27712., 19364., 20568., 21832., 23040., 24316., 25528.,
      26816., 28032., 19572., 20792., 22072., 23296., 24588., 25816., 27120.,
      28352., 19780., 21016., 22312., 23552., 24860., 26104., 27424., 28672.,
      19988., 21240., 22552., 23808., 25132., 26392., 27728., 28992., 21652.,
      23032., 24472., 25856., 27308., 28696., 30160., 31552., 21860., 23256.,
      24712., 26112., 27580., 28984., 30464., 31872., 22068., 23480., 24952.,
      26368., 27852., 29272., 30768., 32192., 22276., 23704., 25192., 26624.,
      28124., 29560., 31072., 32512., 22484., 23928., 25432., 26880., 28396.,
      29848., 31376., 32832., 22692., 24152., 25672., 27136., 28668., 30136.,
      31680., 33152., 22900., 24376., 25912., 27392., 28940., 30424., 31984.,
      33472., 24564., 26168., 27832., 29440., 31116., 32728., 34416., 36032.,
      24772., 26392., 28072., 29696., 31388., 33016., 34720., 36352., 24980.,
      26616., 28312., 29952., 31660., 33304., 35024., 36672., 25188., 26840.,
      28552., 30208., 31932., 33592., 35328., 36992., 25396., 27064., 28792.,
      30464., 32204., 33880., 35632., 37312., 25604., 27288., 29032., 30720.,
      32476., 34168., 35936., 37632., 25812., 27512., 29272., 30976., 32748.,
      34456., 36240., 37952., 27476., 29304., 31192., 33024., 34924., 36760.,
      38672., 40512., 27684., 29528., 31432., 33280., 35196., 37048., 38976.,
      40832., 27892., 29752., 31672., 33536., 35468., 37336., 39280., 41152.,
      28100., 29976., 31912., 33792., 35740., 37624., 39584., 41472., 28308.,
      30200., 32152., 34048., 36012., 37912., 39888., 41792., 28516., 30424.,
      32392., 34304., 36284., 38200., 40192., 42112., 28724., 30648., 32632.,
      34560., 36556., 38488., 40496., 42432.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x12x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      258598., 260428., 262258., 264088., 266716., 268552., 270388., 272224.,
      274882., 276724., 278566., 280408., 283096., 284944., 286792., 288640.,
      261694., 263548., 265402., 267256., 269908., 271768., 273628., 275488.,
      278170., 280036., 281902., 283768., 286480., 288352., 290224., 292096.,
      326472., 328912., 331352., 333792., 337232., 339680., 342128., 344576.,
      348056., 350512., 352968., 355424., 358944., 361408., 363872., 366336.,
      330344., 332816., 335288., 337760., 341232., 343712., 346192., 348672.,
      352184., 354672., 357160., 359648., 363200., 365696., 368192., 370688.,
      229318., 231148., 232978., 234808., 237340., 239176., 241012., 242848.,
      245410., 247252., 249094., 250936., 253528., 255376., 257224., 259072.,
      232030., 233884., 235738., 237592., 240148., 242008., 243868., 245728.,
      248314., 250180., 252046., 253912., 256528., 258400., 260272., 262144.,
      234742., 236620., 238498., 240376., 242956., 244840., 246724., 248608.,
      251218., 253108., 254998., 256888., 259528., 261424., 263320., 265216.,
      304929., 307170., 309411., 311652., 314802., 317052., 319302., 321552.,
      324747., 327006., 329265., 331524., 334764., 337032., 339300., 341568.,
      308421., 310698., 312975., 315252., 318438., 320724., 323010., 325296.,
      328527., 330822., 333117., 335412., 338688., 340992., 343296., 345600.,
      384460., 387448., 390436., 393424., 397528., 400528., 403528., 406528.,
      410692., 413704., 416716., 419728., 423952., 426976., 430000., 433024.,
      388732., 391768., 394804., 397840., 401992., 405040., 408088., 411136.,
      415348., 418408., 421468., 424528., 428800., 431872., 434944., 438016.,
      269073., 271314., 273555., 275796., 278802., 281052., 283302., 285552.,
      288603., 290862., 293121., 295380., 298476., 300744., 303012., 305280.,
      271989., 274266., 276543., 278820., 281862., 284148., 286434., 288720.,
      291807., 294102., 296397., 298692., 301824., 304128., 306432., 308736.,
      274905., 277218., 279531., 281844., 284922., 287244., 289566., 291888.,
      295011., 297342., 299673., 302004., 305172., 307512., 309852., 312192.,
      353817., 356562., 359307., 362052., 365706., 368460., 371214., 373968.,
      377667., 380430., 383193., 385956., 389700., 392472., 395244., 398016.,
      357309., 360090., 362871., 365652., 369342., 372132., 374922., 377712.,
      381447., 384246., 387045., 389844., 393624., 396432., 399240., 402048.,
      444268., 447928., 451588., 455248., 460024., 463696., 467368., 471040.,
      475876., 479560., 483244., 486928., 491824., 495520., 499216., 502912.,
      448540., 452248., 455956., 459664., 464488., 468208., 471928., 475648.,
      480532., 484264., 487996., 491728., 496672., 500416., 504160., 507904.,
      309897., 312642., 315387., 318132., 321642., 324396., 327150., 329904.,
      333459., 336222., 338985., 341748., 345348., 348120., 350892., 353664.,
      312813., 315594., 318375., 321156., 324702., 327492., 330282., 333072.,
      336663., 339462., 342261., 345060., 348696., 351504., 354312., 357120.,
      315729., 318546., 321363., 324180., 327762., 330588., 333414., 336240.,
      339867., 342702., 345537., 348372., 352044., 354888., 357732., 360576.,
      402705., 405954., 409203., 412452., 416610., 419868., 423126., 426384.,
      430587., 433854., 437121., 440388., 444636., 447912., 451188., 454464.,
      406197., 409482., 412767., 416052., 420246., 423540., 426834., 430128.,
      434367., 437670., 440973., 444276., 448560., 451872., 455184., 458496.,
      504076., 508408., 512740., 517072., 522520., 526864., 531208., 535552.,
      541060., 545416., 549772., 554128., 559696., 564064., 568432., 572800.,
      508348., 512728., 517108., 521488., 526984., 531376., 535768., 540160.,
      545716., 550120., 554524., 558928., 564544., 568960., 573376., 577792.,
      350721., 353970., 357219., 360468., 364482., 367740., 370998., 374256.,
      378315., 381582., 384849., 388116., 392220., 395496., 398772., 402048.,
      353637., 356922., 360207., 363492., 367542., 370836., 374130., 377424.,
      381519., 384822., 388125., 391428., 395568., 398880., 402192., 405504.,
      356553., 359874., 363195., 366516., 370602., 373932., 377262., 380592.,
      384723., 388062., 391401., 394740., 398916., 402264., 405612., 408960.,
      451593., 455346., 459099., 462852., 467514., 471276., 475038., 478800.,
      483507., 487278., 491049., 494820., 499572., 503352., 507132., 510912.,
      455085., 458874., 462663., 466452., 471150., 474948., 478746., 482544.,
      487287., 491094., 494901., 498708., 503496., 507312., 511128., 514944.,
      563884., 568888., 573892., 578896., 585016., 590032., 595048., 600064.,
      606244., 611272., 616300., 621328., 627568., 632608., 637648., 642688.,
      568156., 573208., 578260., 583312., 589480., 594544., 599608., 604672.,
      610900., 615976., 621052., 626128., 632416., 637504., 642592., 647680.,
      391545., 395298., 399051., 402804., 407322., 411084., 414846., 418608.,
      423171., 426942., 430713., 434484., 439092., 442872., 446652., 450432.,
      394461., 398250., 402039., 405828., 410382., 414180., 417978., 421776.,
      426375., 430182., 433989., 437796., 442440., 446256., 450072., 453888.,
      397377., 401202., 405027., 408852., 413442., 417276., 421110., 424944.,
      429579., 433422., 437265., 441108., 445788., 449640., 453492., 457344.,
      163318., 165484., 167650., 169816., 172396., 174568., 176740., 178912.,
      181522., 183700., 185878., 188056., 190696., 192880., 195064., 197248.,
      164878., 167068., 169258., 171448., 174052., 176248., 178444., 180640.,
      183274., 185476., 187678., 189880., 192544., 194752., 196960., 199168.,
      195848., 198736., 201624., 204512., 207888., 210784., 213680., 216576.,
      219992., 222896., 225800., 228704., 232160., 235072., 237984., 240896.,
      197672., 200592., 203512., 206432., 209840., 212768., 215696., 218624.,
      222072., 225008., 227944., 230880., 234368., 237312., 240256., 243200.,
      128662., 130828., 132994., 135160., 137644., 139816., 141988., 144160.,
      146674., 148852., 151030., 153208., 155752., 157936., 160120., 162304.,
      129838., 132028., 134218., 136408., 138916., 141112., 143308., 145504.,
      148042., 150244., 152446., 154648., 157216., 159424., 161632., 163840.,
      131014., 133228., 135442., 137656., 140188., 142408., 144628., 146848.,
      149410., 151636., 153862., 156088., 158680., 160912., 163144., 165376.,
      185158., 187660., 190162., 192664., 195580., 198088., 200596., 203104.,
      206050., 208564., 211078., 213592., 216568., 219088., 221608., 224128.,
      186718., 189244., 191770., 194296., 197236., 199768., 202300., 204832.,
      207802., 210340., 212878., 215416., 218416., 220960., 223504., 226048.,
      221384., 224720., 228056., 231392., 235216., 238560., 241904., 245248.,
      249112., 252464., 255816., 259168., 263072., 266432., 269792., 273152.,
      223208., 226576., 229944., 233312., 237168., 240544., 243920., 247296.,
      251192., 254576., 257960., 261344., 265280., 268672., 272064., 275456.,
      145126., 147628., 150130., 152632., 155452., 157960., 160468., 162976.,
      165826., 168340., 170854., 173368., 176248., 178768., 181288., 183808.,
      146302., 148828., 151354., 153880., 156724., 159256., 161788., 164320.,
      167194., 169732., 172270., 174808., 177712., 180256., 182800., 185344.,
      147478., 150028., 152578., 155128., 157996., 160552., 163108., 165664.,
      168562., 171124., 173686., 176248., 179176., 181744., 184312., 186880.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x12x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19524., 20008., 20492., 20976., 21576., 22064., 22552., 23040., 23660.,
      24152., 24644., 25136., 25776., 26272., 26768., 27264., 19924., 20424.,
      20924., 21424., 22040., 22544., 23048., 23552., 24188., 24696., 25204.,
      25712., 26368., 26880., 27392., 27904., 20324., 20840., 21356., 21872.,
      22504., 23024., 23544., 24064., 24716., 25240., 25764., 26288., 26960.,
      27488., 28016., 28544., 20724., 21256., 21788., 22320., 22968., 23504.,
      24040., 24576., 25244., 25784., 26324., 26864., 27552., 28096., 28640.,
      29184., 21124., 21672., 22220., 22768., 23432., 23984., 24536., 25088.,
      25772., 26328., 26884., 27440., 28144., 28704., 29264., 29824., 21524.,
      22088., 22652., 23216., 23896., 24464., 25032., 25600., 26300., 26872.,
      27444., 28016., 28736., 29312., 29888., 30464., 21924., 22504., 23084.,
      23664., 24360., 24944., 25528., 26112., 26828., 27416., 28004., 28592.,
      29328., 29920., 30512., 31104., 25124., 25832., 26540., 27248., 28072.,
      28784., 29496., 30208., 31052., 31768., 32484., 33200., 34064., 34784.,
      35504., 36224., 25524., 26248., 26972., 27696., 28536., 29264., 29992.,
      30720., 31580., 32312., 33044., 33776., 34656., 35392., 36128., 36864.,
      25924., 26664., 27404., 28144., 29000., 29744., 30488., 31232., 32108.,
      32856., 33604., 34352., 35248., 36000., 36752., 37504., 26324., 27080.,
      27836., 28592., 29464., 30224., 30984., 31744., 32636., 33400., 34164.,
      34928., 35840., 36608., 37376., 38144., 26724., 27496., 28268., 29040.,
      29928., 30704., 31480., 32256., 33164., 33944., 34724., 35504., 36432.,
      37216., 38000., 38784., 27124., 27912., 28700., 29488., 30392., 31184.,
      31976., 32768., 33692., 34488., 35284., 36080., 37024., 37824., 38624.,
      39424., 27524., 28328., 29132., 29936., 30856., 31664., 32472., 33280.,
      34220., 35032., 35844., 36656., 37616., 38432., 39248., 40064., 30724.,
      31656., 32588., 33520., 34568., 35504., 36440., 37376., 38444., 39384.,
      40324., 41264., 42352., 43296., 44240., 45184., 31124., 32072., 33020.,
      33968., 35032., 35984., 36936., 37888., 38972., 39928., 40884., 41840.,
      42944., 43904., 44864., 45824., 31524., 32488., 33452., 34416., 35496.,
      36464., 37432., 38400., 39500., 40472., 41444., 42416., 43536., 44512.,
      45488., 46464., 31924., 32904., 33884., 34864., 35960., 36944., 37928.,
      38912., 40028., 41016., 42004., 42992., 44128., 45120., 46112., 47104.,
      32324., 33320., 34316., 35312., 36424., 37424., 38424., 39424., 40556.,
      41560., 42564., 43568., 44720., 45728., 46736., 47744., 32724., 33736.,
      34748., 35760., 36888., 37904., 38920., 39936., 41084., 42104., 43124.,
      44144., 45312., 46336., 47360., 48384., 33124., 34152., 35180., 36208.,
      37352., 38384., 39416., 40448., 41612., 42648., 43684., 44720., 45904.,
      46944., 47984., 49024., 36324., 37480., 38636., 39792., 41064., 42224.,
      43384., 44544., 45836., 47000., 48164., 49328., 50640., 51808., 52976.,
      54144., 36724., 37896., 39068., 40240., 41528., 42704., 43880., 45056.,
      46364., 47544., 48724., 49904., 51232., 52416., 53600., 54784., 37124.,
      38312., 39500., 40688., 41992., 43184., 44376., 45568., 46892., 48088.,
      49284., 50480., 51824., 53024., 54224., 55424., 37524., 38728., 39932.,
      41136., 42456., 43664., 44872., 46080., 47420., 48632., 49844., 51056.,
      52416., 53632., 54848., 56064., 37924., 39144., 40364., 41584., 42920.,
      44144., 45368., 46592., 47948., 49176., 50404., 51632., 53008., 54240.,
      55472., 56704., 38324., 39560., 40796., 42032., 43384., 44624., 45864.,
      47104., 48476., 49720., 50964., 52208., 53600., 54848., 56096., 57344.,
      38724., 39976., 41228., 42480., 43848., 45104., 46360., 47616., 49004.,
      50264., 51524., 52784., 54192., 55456., 56720., 57984., 41924., 43304.,
      44684., 46064., 47560., 48944., 50328., 51712., 53228., 54616., 56004.,
      57392., 58928., 60320., 61712., 63104., 42324., 43720., 45116., 46512.,
      48024., 49424., 50824., 52224., 53756., 55160., 56564., 57968., 59520.,
      60928., 62336., 63744., 42724., 44136., 45548., 46960., 48488., 49904.,
      51320., 52736., 54284., 55704., 57124., 58544., 60112., 61536., 62960.,
      64384., 43124., 44552., 45980., 47408., 48952., 50384., 51816., 53248.,
      54812., 56248., 57684., 59120., 60704., 62144., 63584., 65024., 43524.,
      44968., 46412., 47856., 49416., 50864., 52312., 53760., 55340., 56792.,
      58244., 59696., 61296., 62752., 64208., 65664., 43924., 45384., 46844.,
      48304., 49880., 51344., 52808., 54272., 55868., 57336., 58804., 60272.,
      61888., 63360., 64832., 66304., 44324., 45800., 47276., 48752., 50344.,
      51824., 53304., 54784., 56396., 57880., 59364., 60848., 62480., 63968.,
      65456., 66944., 47524., 49128., 50732., 52336., 54056., 55664., 57272.,
      58880., 60620., 62232., 63844., 65456., 67216., 68832., 70448., 72064.,
      47924., 49544., 51164., 52784., 54520., 56144., 57768., 59392., 61148.,
      62776., 64404., 66032., 67808., 69440., 71072., 72704., 48324., 49960.,
      51596., 53232., 54984., 56624., 58264., 59904., 61676., 63320., 64964.,
      66608., 68400., 70048., 71696., 73344., 48724., 50376., 52028., 53680.,
      55448., 57104., 58760., 60416., 62204., 63864., 65524., 67184., 68992.,
      70656., 72320., 73984., 49124., 50792., 52460., 54128., 55912., 57584.,
      59256., 60928., 62732., 64408., 66084., 67760., 69584., 71264., 72944.,
      74624., 49524., 51208., 52892., 54576., 56376., 58064., 59752., 61440.,
      63260., 64952., 66644., 68336., 70176., 71872., 73568., 75264., 49924.,
      51624., 53324., 55024., 56840., 58544., 60248., 61952., 63788., 65496.,
      67204., 68912., 70768., 72480., 74192., 75904., 53124., 54952., 56780.,
      58608., 60552., 62384., 64216., 66048., 68012., 69848., 71684., 73520.,
      75504., 77344., 79184., 81024., 53524., 55368., 57212., 59056., 61016.,
      62864., 64712., 66560., 68540., 70392., 72244., 74096., 76096., 77952.,
      79808., 81664., 53924., 55784., 57644., 59504., 61480., 63344., 65208.,
      67072., 69068., 70936., 72804., 74672., 76688., 78560., 80432., 82304.,
      54324., 56200., 58076., 59952., 61944., 63824., 65704., 67584., 69596.,
      71480., 73364., 75248., 77280., 79168., 81056., 82944., 54724., 56616.,
      58508., 60400., 62408., 64304., 66200., 68096., 70124., 72024., 73924.,
      75824., 77872., 79776., 81680., 83584., 55124., 57032., 58940., 60848.,
      62872., 64784., 66696., 68608., 70652., 72568., 74484., 76400., 78464.,
      80384., 82304., 84224., 55524., 57448., 59372., 61296., 63336., 65264.,
      67192., 69120., 71180., 73112., 75044., 76976., 79056., 80992., 82928.,
      84864.};
  const std::array<int, 4> in_shape = {{1, 12, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4155., 4206., 5928., 6000., 6072., 3774., 3819., 4716., 4767., 6720.,
      6792., 6864., 4269., 4314., 5304., 5360., 7550., 7628., 7706., 4784.,
      4832., 5920., 5976., 8408., 8486., 8564., 5312., 5360., 2877., 2910.,
      4011., 4056., 4101., 2478., 2505., 3240., 3273., 4506., 4551., 4596.,
      2775., 2802., 3603., 3636., 5001., 5046., 5091., 3072., 3099.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      342., 352., 362.,  372.,  382.,  392.,  402.,  452.,  462., 472.,
      482., 492., 502.,  512.,  562.,  572.,  582.,  592.,  602., 612.,
      622., 672., 682.,  692.,  702.,  712.,  722.,  732.,  782., 792.,
      802., 812., 822.,  832.,  842.,  892.,  902.,  912.,  922., 932.,
      942., 952., 1002., 1012., 1022., 1032., 1042., 1052., 1062.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7884.,  8310.,  7980.,  8412.,  11217., 11856., 11352., 12000., 11487.,
      12144., 7116.,  7548.,  7200.,  7638.,  8940.,  9432.,  9036.,  9534.,
      12702., 13440., 12837., 13584., 12972., 13728., 8040.,  8538.,  8124.,
      8628.,  10040., 10608., 10144., 10720., 14248., 15100., 14392., 15256.,
      14536., 15412., 8992.,  9568.,  9080.,  9664.,  11184., 11840., 11288.,
      11952., 15832., 16816., 15976., 16972., 16120., 17128., 9960.,  10624.,
      10048., 10720., 5328.,  5754.,  5388.,  5820.,  7383.,  8022.,  7464.,
      8112.,  7545.,  8202.,  4524.,  4956.,  4572.,  5010.,  5988.,  6480.,
      6048.,  6546.,  8274.,  9012.,  8355.,  9102.,  8436.,  9192.,  5052.,
      5550.,  5100.,  5604.,  6648.,  7206.,  6708.,  7272.,  9165.,  10002.,
      9246.,  10092., 9327.,  10182., 5580.,  6144.,  5628.,  6198.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      584.,  684.,  600.,  704.,  616.,  724.,  632.,  744.,  648.,  764.,
      664.,  784.,  680.,  804.,  760.,  904.,  776.,  924.,  792.,  944.,
      808.,  964.,  824.,  984.,  840.,  1004., 856.,  1024., 936.,  1124.,
      952.,  1144., 968.,  1164., 984.,  1184., 1000., 1204., 1016., 1224.,
      1032., 1244., 1112., 1344., 1128., 1364., 1144., 1384., 1160., 1404.,
      1176., 1424., 1192., 1444., 1208., 1464., 1288., 1564., 1304., 1584.,
      1320., 1604., 1336., 1624., 1352., 1644., 1368., 1664., 1384., 1684.,
      1464., 1784., 1480., 1804., 1496., 1824., 1512., 1844., 1528., 1864.,
      1544., 1884., 1560., 1904., 1640., 2004., 1656., 2024., 1672., 2044.,
      1688., 2064., 1704., 2084., 1720., 2104., 1736., 2124.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      15342., 15768., 16194., 16620., 15528., 15960., 16392., 16824., 21795.,
      22434., 23073., 23712., 22056., 22704., 23352., 24000., 22317., 22974.,
      23631., 24288., 13800., 14232., 14664., 15096., 13962., 14400., 14838.,
      15276., 17388., 17880., 18372., 18864., 17574., 18072., 18570., 19068.,
      24666., 25404., 26142., 26880., 24927., 25674., 26421., 27168., 25188.,
      25944., 26700., 27456., 15582., 16080., 16578., 17076., 15744., 16248.,
      16752., 17256., 19512., 20080., 20648., 21216., 19712., 20288., 20864.,
      21440., 27644., 28496., 29348., 30200., 27920., 28784., 29648., 30512.,
      28196., 29072., 29948., 30824., 17408., 17984., 18560., 19136., 17576.,
      18160., 18744., 19328., 21712., 22368., 23024., 23680., 21912., 22576.,
      23240., 23904., 30680., 31664., 32648., 33632., 30956., 31952., 32948.,
      33944., 31232., 32240., 33248., 34256., 19256., 19920., 20584., 21248.,
      19424., 20096., 20768., 21440., 10230., 10656., 11082., 11508., 10344.,
      10776., 11208., 11640., 14127., 14766., 15405., 16044., 14280., 14928.,
      15576., 16224., 14433., 15090., 15747., 16404., 8616.,  9048.,  9480.,
      9912.,  8706.,  9144.,  9582.,  10020., 11484., 11976., 12468., 12960.,
      11598., 12096., 12594., 13092., 15810., 16548., 17286., 18024., 15963.,
      16710., 17457., 18204., 16116., 16872., 17628., 18384., 9606.,  10104.,
      10602., 11100., 9696.,  10200., 10704., 11208., 12738., 13296., 13854.,
      14412., 12852., 13416., 13980., 14544., 17493., 18330., 19167., 20004.,
      17646., 18492., 19338., 20184., 17799., 18654., 19509., 20364., 10596.,
      11160., 11724., 12288., 10686., 11256., 11826., 12396.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1068., 1168., 1268., 1368., 1096., 1200., 1304., 1408., 1124., 1232.,
      1340., 1448., 1152., 1264., 1376., 1488., 1180., 1296., 1412., 1528.,
      1208., 1328., 1448., 1568., 1236., 1360., 1484., 1608., 1376., 1520.,
      1664., 1808., 1404., 1552., 1700., 1848., 1432., 1584., 1736., 1888.,
      1460., 1616., 1772., 1928., 1488., 1648., 1808., 1968., 1516., 1680.,
      1844., 2008., 1544., 1712., 1880., 2048., 1684., 1872., 2060., 2248.,
      1712., 1904., 2096., 2288., 1740., 1936., 2132., 2328., 1768., 1968.,
      2168., 2368., 1796., 2000., 2204., 2408., 1824., 2032., 2240., 2448.,
      1852., 2064., 2276., 2488., 1992., 2224., 2456., 2688., 2020., 2256.,
      2492., 2728., 2048., 2288., 2528., 2768., 2076., 2320., 2564., 2808.,
      2104., 2352., 2600., 2848., 2132., 2384., 2636., 2888., 2160., 2416.,
      2672., 2928., 2300., 2576., 2852., 3128., 2328., 2608., 2888., 3168.,
      2356., 2640., 2924., 3208., 2384., 2672., 2960., 3248., 2412., 2704.,
      2996., 3288., 2440., 2736., 3032., 3328., 2468., 2768., 3068., 3368.,
      2608., 2928., 3248., 3568., 2636., 2960., 3284., 3608., 2664., 2992.,
      3320., 3648., 2692., 3024., 3356., 3688., 2720., 3056., 3392., 3728.,
      2748., 3088., 3428., 3768., 2776., 3120., 3464., 3808., 2916., 3280.,
      3644., 4008., 2944., 3312., 3680., 4048., 2972., 3344., 3716., 4088.,
      3000., 3376., 3752., 4128., 3028., 3408., 3788., 4168., 3056., 3440.,
      3824., 4208., 3084., 3472., 3860., 4248.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      15672., 16620., 15864., 16824., 22299., 23712., 22569., 24000., 22839.,
      24288., 14148., 15096., 14316., 15276., 17784., 18864., 17976., 19068.,
      25269., 26880., 25539., 27168., 25809., 27456., 15996., 17076., 16164.,
      17256., 19976., 21216., 20184., 21440., 28352., 30200., 28640., 30512.,
      28928., 30824., 17896., 19136., 18072., 19328., 22264., 23680., 22472.,
      23904., 31520., 33632., 31808., 33944., 32096., 34256., 19832., 21248.,
      20008., 21440., 10596., 11508., 10716., 11640., 14685., 16044., 14847.,
      16224., 15009., 16404., 9000.,  9912.,  9096.,  10020., 11916., 12960.,
      12036., 13092., 16467., 18024., 16629., 18204., 16791., 18384., 10056.,
      11100., 10152., 11208., 13236., 14412., 13356., 14544., 18249., 20004.,
      18411., 20184., 18573., 20364., 11112., 12288., 11208., 12396.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1152., 1368., 1184., 1408., 1216., 1448., 1248., 1488., 1280., 1528.,
      1312., 1568., 1344., 1608., 1504., 1808., 1536., 1848., 1568., 1888.,
      1600., 1928., 1632., 1968., 1664., 2008., 1696., 2048., 1856., 2248.,
      1888., 2288., 1920., 2328., 1952., 2368., 1984., 2408., 2016., 2448.,
      2048., 2488., 2208., 2688., 2240., 2728., 2272., 2768., 2304., 2808.,
      2336., 2848., 2368., 2888., 2400., 2928., 2560., 3128., 2592., 3168.,
      2624., 3208., 2656., 3248., 2688., 3288., 2720., 3328., 2752., 3368.,
      2912., 3568., 2944., 3608., 2976., 3648., 3008., 3688., 3040., 3728.,
      3072., 3768., 3104., 3808., 3264., 4008., 3296., 4048., 3328., 4088.,
      3360., 4128., 3392., 4168., 3424., 4208., 3456., 4248.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      30498., 31344., 32388., 33240., 30870., 31728., 32784., 33648., 43329.,
      44598., 46146., 47424., 43851., 45138., 46704., 48000., 44373., 45678.,
      47262., 48576., 27438., 28296., 29328., 30192., 27762., 28632., 29676.,
      30552., 34590., 35568., 36744., 37728., 34962., 35952., 37140., 38136.,
      49071., 50538., 52284., 53760., 49593., 51078., 52842., 54336., 50115.,
      51618., 53400., 54912., 31002., 31992., 33156., 34152., 31326., 32328.,
      33504., 34512., 38824., 39952., 41296., 42432., 39224., 40368., 41728.,
      42880., 55012., 56704., 58696., 60400., 55564., 57280., 59296., 61024.,
      56116., 57856., 59896., 61648., 34648., 35792., 37120., 38272., 34984.,
      36144., 37488., 38656., 43224., 44528., 46048., 47360., 43624., 44944.,
      46480., 47808., 61084., 63040., 65296., 67264., 61636., 63616., 65896.,
      67888., 62188., 64192., 66496., 68512., 38344., 39664., 41168., 42496.,
      38680., 40016., 41536., 42880., 20346., 21192., 22164., 23016., 20574.,
      21432., 22416., 23280., 28101., 29370., 30810., 32088., 28407., 29694.,
      31152., 32448., 28713., 30018., 31494., 32808., 17142., 18000., 18960.,
      19824., 17322., 18192., 19164., 20040., 22854., 23832., 24936., 25920.,
      23082., 24072., 25188., 26184., 31467., 32934., 34572., 36048., 31773.,
      33258., 34914., 36408., 32079., 33582., 35256., 36768., 19122., 20112.,
      21204., 22200., 19302., 20304., 21408., 22416., 25362., 26472., 27708.,
      28824., 25590., 26712., 27960., 29088., 34833., 36498., 38334., 40008.,
      35139., 36822., 38676., 40368., 35445., 37146., 39018., 40728., 21102.,
      22224., 23448., 24576., 21282., 22416., 23652., 24792.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2108., 2304., 2536., 2736., 2164., 2368., 2608., 2816., 2220., 2432.,
      2680., 2896., 2276., 2496., 2752., 2976., 2332., 2560., 2824., 3056.,
      2388., 2624., 2896., 3136., 2444., 2688., 2968., 3216., 2724., 3008.,
      3328., 3616., 2780., 3072., 3400., 3696., 2836., 3136., 3472., 3776.,
      2892., 3200., 3544., 3856., 2948., 3264., 3616., 3936., 3004., 3328.,
      3688., 4016., 3060., 3392., 3760., 4096., 3340., 3712., 4120., 4496.,
      3396., 3776., 4192., 4576., 3452., 3840., 4264., 4656., 3508., 3904.,
      4336., 4736., 3564., 3968., 4408., 4816., 3620., 4032., 4480., 4896.,
      3676., 4096., 4552., 4976., 3956., 4416., 4912., 5376., 4012., 4480.,
      4984., 5456., 4068., 4544., 5056., 5536., 4124., 4608., 5128., 5616.,
      4180., 4672., 5200., 5696., 4236., 4736., 5272., 5776., 4292., 4800.,
      5344., 5856., 4572., 5120., 5704., 6256., 4628., 5184., 5776., 6336.,
      4684., 5248., 5848., 6416., 4740., 5312., 5920., 6496., 4796., 5376.,
      5992., 6576., 4852., 5440., 6064., 6656., 4908., 5504., 6136., 6736.,
      5188., 5824., 6496., 7136., 5244., 5888., 6568., 7216., 5300., 5952.,
      6640., 7296., 5356., 6016., 6712., 7376., 5412., 6080., 6784., 7456.,
      5468., 6144., 6856., 7536., 5524., 6208., 6928., 7616., 5804., 6528.,
      7288., 8016., 5860., 6592., 7360., 8096., 5916., 6656., 7432., 8176.,
      5972., 6720., 7504., 8256., 6028., 6784., 7576., 8336., 6084., 6848.,
      7648., 8416., 6140., 6912., 7720., 8496.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      60150.,  60996.,  61842.,  62688.,  63924.,  64776.,  65628.,  66480.,
      60882.,  61740.,  62598.,  63456.,  64704.,  65568.,  66432.,  67296.,
      85389.,  86658.,  87927.,  89196.,  91014.,  92292.,  93570.,  94848.,
      86415.,  87702.,  88989.,  90276.,  92112.,  93408.,  94704.,  96000.,
      87441.,  88746.,  90051.,  91356.,  93210.,  94524.,  95838.,  97152.,
      54018.,  54876.,  55734.,  56592.,  57792.,  58656.,  59520.,  60384.,
      54654.,  55524.,  56394.,  57264.,  58476.,  59352.,  60228.,  61104.,
      68202.,  69180.,  70158.,  71136.,  72504.,  73488.,  74472.,  75456.,
      68934.,  69924.,  70914.,  71904.,  73284.,  74280.,  75276.,  76272.,
      96675.,  98142.,  99609.,  101076., 103092., 104568., 106044., 107520.,
      97701.,  99186.,  100671., 102156., 104190., 105684., 107178., 108672.,
      98727.,  100230., 101733., 103236., 105288., 106800., 108312., 109824.,
      61014.,  62004.,  62994.,  63984.,  65316.,  66312.,  67308.,  68304.,
      61650.,  62652.,  63654.,  64656.,  66000.,  67008.,  68016.,  69024.,
      76520.,  77648.,  78776.,  79904.,  81456.,  82592.,  83728.,  84864.,
      77304.,  78448.,  79592.,  80736.,  82304.,  83456.,  84608.,  85760.,
      108332., 110024., 111716., 113408., 115688., 117392., 119096., 120800.,
      109412., 111128., 112844., 114560., 116864., 118592., 120320., 122048.,
      110492., 112232., 113972., 115712., 118040., 119792., 121544., 123296.,
      68152.,  69296.,  70440.,  71584.,  73088.,  74240.,  75392.,  76544.,
      68808.,  69968.,  71128.,  72288.,  73808.,  74976.,  76144.,  77312.,
      85144.,  86448.,  87752.,  89056.,  90784.,  92096.,  93408.,  94720.,
      85928.,  87248.,  88568.,  89888.,  91632.,  92960.,  94288.,  95616.,
      120212., 122168., 124124., 126080., 128624., 130592., 132560., 134528.,
      121292., 123272., 125252., 127232., 129800., 131792., 133784., 135776.,
      122372., 124376., 126380., 128384., 130976., 132992., 135008., 137024.,
      75368.,  76688.,  78008.,  79328.,  81008.,  82336.,  83664.,  84992.,
      76024.,  77360.,  78696.,  80032.,  81728.,  83072.,  84416.,  85760.,
      39846.,  40692.,  41538.,  42384.,  43476.,  44328.,  45180.,  46032.,
      40290.,  41148.,  42006.,  42864.,  43968.,  44832.,  45696.,  46560.,
      54933.,  56202.,  57471.,  58740.,  60342.,  61620.,  62898.,  64176.,
      55527.,  56814.,  58101.,  59388.,  61008.,  62304.,  63600.,  64896.,
      56121.,  57426.,  58731.,  60036.,  61674.,  62988.,  64302.,  65616.,
      33426.,  34284.,  35142.,  36000.,  37056.,  37920.,  38784.,  39648.,
      33774.,  34644.,  35514.,  36384.,  37452.,  38328.,  39204.,  40080.,
      44730.,  45708.,  46686.,  47664.,  48888.,  49872.,  50856.,  51840.,
      45174.,  46164.,  47154.,  48144.,  49380.,  50376.,  51372.,  52368.,
      61467.,  62934.,  64401.,  65868.,  67668.,  69144.,  70620.,  72096.,
      62061.,  63546.,  65031.,  66516.,  68334.,  69828.,  71322.,  72816.,
      62655.,  64158.,  65661.,  67164.,  69000.,  70512.,  72024.,  73536.,
      37254.,  38244.,  39234.,  40224.,  41412.,  42408.,  43404.,  44400.,
      37602.,  38604.,  39606.,  40608.,  41808.,  42816.,  43824.,  44832.,
      49614.,  50724.,  51834.,  52944.,  54300.,  55416.,  56532.,  57648.,
      50058.,  51180.,  52302.,  53424.,  54792.,  55920.,  57048.,  58176.,
      68001.,  69666.,  71331.,  72996.,  74994.,  76668.,  78342.,  80016.,
      68595.,  70278.,  71961.,  73644.,  75660.,  77352.,  79044.,  80736.,
      69189.,  70890.,  72591.,  74292.,  76326.,  78036.,  79746.,  81456.,
      41082.,  42204.,  43326.,  44448.,  45768.,  46896.,  48024.,  49152.,
      41430.,  42564.,  43698.,  44832.,  46164.,  47304.,  48444.,  49584.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4020.,  4216.,  4412.,  4608.,  4872.,  5072.,  5272.,  5472.,  4124.,
      4328.,  4532.,  4736.,  5008.,  5216.,  5424.,  5632.,  4228.,  4440.,
      4652.,  4864.,  5144.,  5360.,  5576.,  5792.,  4332.,  4552.,  4772.,
      4992.,  5280.,  5504.,  5728.,  5952.,  4436.,  4664.,  4892.,  5120.,
      5416.,  5648.,  5880.,  6112.,  4540.,  4776.,  5012.,  5248.,  5552.,
      5792.,  6032.,  6272.,  4644.,  4888.,  5132.,  5376.,  5688.,  5936.,
      6184.,  6432.,  5164.,  5448.,  5732.,  6016.,  6368.,  6656.,  6944.,
      7232.,  5268.,  5560.,  5852.,  6144.,  6504.,  6800.,  7096.,  7392.,
      5372.,  5672.,  5972.,  6272.,  6640.,  6944.,  7248.,  7552.,  5476.,
      5784.,  6092.,  6400.,  6776.,  7088.,  7400.,  7712.,  5580.,  5896.,
      6212.,  6528.,  6912.,  7232.,  7552.,  7872.,  5684.,  6008.,  6332.,
      6656.,  7048.,  7376.,  7704.,  8032.,  5788.,  6120.,  6452.,  6784.,
      7184.,  7520.,  7856.,  8192.,  6308.,  6680.,  7052.,  7424.,  7864.,
      8240.,  8616.,  8992.,  6412.,  6792.,  7172.,  7552.,  8000.,  8384.,
      8768.,  9152.,  6516.,  6904.,  7292.,  7680.,  8136.,  8528.,  8920.,
      9312.,  6620.,  7016.,  7412.,  7808.,  8272.,  8672.,  9072.,  9472.,
      6724.,  7128.,  7532.,  7936.,  8408.,  8816.,  9224.,  9632.,  6828.,
      7240.,  7652.,  8064.,  8544.,  8960.,  9376.,  9792.,  6932.,  7352.,
      7772.,  8192.,  8680.,  9104.,  9528.,  9952.,  7452.,  7912.,  8372.,
      8832.,  9360.,  9824.,  10288., 10752., 7556.,  8024.,  8492.,  8960.,
      9496.,  9968.,  10440., 10912., 7660.,  8136.,  8612.,  9088.,  9632.,
      10112., 10592., 11072., 7764.,  8248.,  8732.,  9216.,  9768.,  10256.,
      10744., 11232., 7868.,  8360.,  8852.,  9344.,  9904.,  10400., 10896.,
      11392., 7972.,  8472.,  8972.,  9472.,  10040., 10544., 11048., 11552.,
      8076.,  8584.,  9092.,  9600.,  10176., 10688., 11200., 11712., 8596.,
      9144.,  9692.,  10240., 10856., 11408., 11960., 12512., 8700.,  9256.,
      9812.,  10368., 10992., 11552., 12112., 12672., 8804.,  9368.,  9932.,
      10496., 11128., 11696., 12264., 12832., 8908.,  9480.,  10052., 10624.,
      11264., 11840., 12416., 12992., 9012.,  9592.,  10172., 10752., 11400.,
      11984., 12568., 13152., 9116.,  9704.,  10292., 10880., 11536., 12128.,
      12720., 13312., 9220.,  9816.,  10412., 11008., 11672., 12272., 12872.,
      13472., 9740.,  10376., 11012., 11648., 12352., 12992., 13632., 14272.,
      9844.,  10488., 11132., 11776., 12488., 13136., 13784., 14432., 9948.,
      10600., 11252., 11904., 12624., 13280., 13936., 14592., 10052., 10712.,
      11372., 12032., 12760., 13424., 14088., 14752., 10156., 10824., 11492.,
      12160., 12896., 13568., 14240., 14912., 10260., 10936., 11612., 12288.,
      13032., 13712., 14392., 15072., 10364., 11048., 11732., 12416., 13168.,
      13856., 14544., 15232., 10884., 11608., 12332., 13056., 13848., 14576.,
      15304., 16032., 10988., 11720., 12452., 13184., 13984., 14720., 15456.,
      16192., 11092., 11832., 12572., 13312., 14120., 14864., 15608., 16352.,
      11196., 11944., 12692., 13440., 14256., 15008., 15760., 16512., 11300.,
      12056., 12812., 13568., 14392., 15152., 15912., 16672., 11404., 12168.,
      12932., 13696., 14528., 15296., 16064., 16832., 11508., 12280., 13052.,
      13824., 14664., 15440., 16216., 16992.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      60810.,  62688.,  64578.,  66480.,  61554.,  63456.,  65370.,  67296.,
      86397.,  89196.,  92013.,  94848.,  87441.,  90276.,  93129.,  96000.,
      88485.,  91356.,  94245.,  97152.,  54714.,  56592.,  58482.,  60384.,
      55362.,  57264.,  59178.,  61104.,  68994.,  71136.,  73290.,  75456.,
      69738.,  71904.,  74082.,  76272.,  97881.,  101076., 104289., 107520.,
      98925.,  102156., 105405., 108672., 99969.,  103236., 106521., 109824.,
      61842.,  63984.,  66138.,  68304.,  62490.,  64656.,  66834.,  69024.,
      77448.,  79904.,  82376.,  84864.,  78248.,  80736.,  83240.,  85760.,
      109748., 113408., 117092., 120800., 110852., 114560., 118292., 122048.,
      111956., 115712., 119492., 123296., 69128.,  71584.,  74056.,  76544.,
      69800.,  72288.,  74792.,  77312.,  86248.,  89056.,  91880.,  94720.,
      87048.,  89888.,  92744.,  95616.,  121892., 126080., 130292., 134528.,
      122996., 127232., 131492., 135776., 124100., 128384., 132692., 137024.,
      76520.,  79328.,  82152.,  84992.,  77192.,  80032.,  82888.,  85760.,
      40578.,  42384.,  44202.,  46032.,  41034.,  42864.,  44706.,  46560.,
      56049.,  58740.,  61449.,  64176.,  56661.,  59388.,  62133.,  64896.,
      57273.,  60036.,  62817.,  65616.,  34194.,  36000.,  37818.,  39648.,
      34554.,  36384.,  38226.,  40080.,  45594.,  47664.,  49746.,  51840.,
      46050.,  48144.,  50250.,  52368.,  62781.,  65868.,  68973.,  72096.,
      63393.,  66516.,  69657.,  72816.,  64005.,  67164.,  70341.,  73536.,
      38154.,  40224.,  42306.,  44400.,  38514.,  40608.,  42714.,  44832.,
      50610.,  52944.,  55290.,  57648.,  51066.,  53424.,  55794.,  58176.,
      69513.,  72996.,  76497.,  80016.,  70125.,  73644.,  77181.,  80736.,
      70737.,  74292.,  77865.,  81456.,  42114.,  44448.,  46794.,  49152.,
      42474.,  44832.,  47202.,  49584.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4188.,  4608.,  5036.,  5472.,  4300.,  4736.,  5180.,  5632.,  4412.,
      4864.,  5324.,  5792.,  4524.,  4992.,  5468.,  5952.,  4636.,  5120.,
      5612.,  6112.,  4748.,  5248.,  5756.,  6272.,  4860.,  5376.,  5900.,
      6432.,  5420.,  6016.,  6620.,  7232.,  5532.,  6144.,  6764.,  7392.,
      5644.,  6272.,  6908.,  7552.,  5756.,  6400.,  7052.,  7712.,  5868.,
      6528.,  7196.,  7872.,  5980.,  6656.,  7340.,  8032.,  6092.,  6784.,
      7484.,  8192.,  6652.,  7424.,  8204.,  8992.,  6764.,  7552.,  8348.,
      9152.,  6876.,  7680.,  8492.,  9312.,  6988.,  7808.,  8636.,  9472.,
      7100.,  7936.,  8780.,  9632.,  7212.,  8064.,  8924.,  9792.,  7324.,
      8192.,  9068.,  9952.,  7884.,  8832.,  9788.,  10752., 7996.,  8960.,
      9932.,  10912., 8108.,  9088.,  10076., 11072., 8220.,  9216.,  10220.,
      11232., 8332.,  9344.,  10364., 11392., 8444.,  9472.,  10508., 11552.,
      8556.,  9600.,  10652., 11712., 9116.,  10240., 11372., 12512., 9228.,
      10368., 11516., 12672., 9340.,  10496., 11660., 12832., 9452.,  10624.,
      11804., 12992., 9564.,  10752., 11948., 13152., 9676.,  10880., 12092.,
      13312., 9788.,  11008., 12236., 13472., 10348., 11648., 12956., 14272.,
      10460., 11776., 13100., 14432., 10572., 11904., 13244., 14592., 10684.,
      12032., 13388., 14752., 10796., 12160., 13532., 14912., 10908., 12288.,
      13676., 15072., 11020., 12416., 13820., 15232., 11580., 13056., 14540.,
      16032., 11692., 13184., 14684., 16192., 11804., 13312., 14828., 16352.,
      11916., 13440., 14972., 16512., 12028., 13568., 15116., 16672., 12140.,
      13696., 15260., 16832., 12252., 13824., 15404., 16992.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      119934., 121620., 123684., 125376., 127458., 129156., 131256., 132960.,
      121398., 123108., 125196., 126912., 129018., 130740., 132864., 134592.,
      170265., 172794., 175854., 178392., 181479., 184026., 187140., 189696.,
      172317., 174882., 177978., 180552., 183675., 186258., 189408., 192000.,
      174369., 176970., 180102., 182712., 185871., 188490., 191676., 194304.,
      107718., 109428., 111468., 113184., 115242., 116964., 119040., 120768.,
      108990., 110724., 112788., 114528., 116610., 118356., 120456., 122208.,
      136038., 137988., 140316., 142272., 144618., 146580., 148944., 150912.,
      137502., 139476., 141828., 143808., 146178., 148164., 150552., 152544.,
      192837., 195762., 199218., 202152., 205635., 208578., 212088., 215040.,
      194889., 197850., 201342., 204312., 207831., 210810., 214356., 217344.,
      196941., 199938., 203466., 206472., 210027., 213042., 216624., 219648.,
      121710., 123684., 125988., 127968., 130290., 132276., 134616., 136608.,
      122982., 124980., 127308., 129312., 131658., 133668., 136032., 138048.,
      152648., 154896., 157552., 159808., 162488., 164752., 167456., 169728.,
      154216., 156496., 159184., 161472., 164184., 166480., 169216., 171520.,
      216124., 219496., 223432., 226816., 230788., 234184., 238192., 241600.,
      218284., 221704., 225688., 229120., 233140., 236584., 240640., 244096.,
      220444., 223912., 227944., 231424., 235492., 238984., 243088., 246592.,
      135976., 138256., 140880., 143168., 145816., 148112., 150784., 153088.,
      137288., 139600., 142256., 144576., 147256., 149584., 152288., 154624.,
      169896., 172496., 175504., 178112., 181144., 183760., 186816., 189440.,
      171464., 174096., 177136., 179776., 182840., 185488., 188576., 191232.,
      239884., 243784., 248248., 252160., 256660., 260584., 265120., 269056.,
      242044., 245992., 250504., 254464., 259012., 262984., 267568., 271552.,
      244204., 248200., 252760., 256768., 261364., 265384., 270016., 274048.,
      150408., 153040., 156016., 158656., 161656., 164304., 167328., 169984.,
      151720., 154384., 157392., 160064., 163096., 165776., 168832., 171520.,
      79470.,  81156.,  83076.,  84768.,  86706.,  88404.,  90360.,  92064.,
      80358.,  82068.,  84012.,  85728.,  87690.,  89412.,  91392.,  93120.,
      109569., 112098., 114942., 117480., 120351., 122898., 125796., 128352.,
      110757., 113322., 116202., 118776., 121683., 124266., 127200., 129792.,
      111945., 114546., 117462., 120072., 123015., 125634., 128604., 131232.,
      66678.,  68388.,  70284.,  72000.,  73914.,  75636.,  77568.,  79296.,
      67374.,  69108.,  71028.,  72768.,  74706.,  76452.,  78408.,  80160.,
      89238.,  91188.,  93372.,  95328.,  97530.,  99492.,  101712., 103680.,
      90126.,  92100.,  94308.,  96288.,  98514.,  100500., 102744., 104736.,
      122637., 125562., 128802., 131736., 135003., 137946., 141240., 144192.,
      123825., 126786., 130062., 133032., 136335., 139314., 142644., 145632.,
      125013., 128010., 131322., 134328., 137667., 140682., 144048., 147072.,
      74334.,  76308.,  78468.,  80448.,  82626.,  84612.,  86808.,  88800.,
      75030.,  77028.,  79212.,  81216.,  83418.,  85428.,  87648.,  89664.,
      99006.,  101220., 103668., 105888., 108354., 110580., 113064., 115296.,
      99894.,  102132., 104604., 106848., 109338., 111588., 114096., 116352.,
      135705., 139026., 142662., 145992., 149655., 152994., 156684., 160032.,
      136893., 140250., 143922., 147288., 150987., 154362., 158088., 161472.,
      138081., 141474., 145182., 148584., 152319., 155730., 159492., 162912.,
      81990.,  84228.,  86652.,  88896.,  91338.,  93588.,  96048.,  98304.,
      82686.,  84948.,  87396.,  89664.,  92130.,  94404.,  96888.,  99168.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7988.,  8376.,  8824.,  9216.,  9676.,  10072., 10544., 10944., 8196.,
      8600.,  9064.,  9472.,  9948.,  10360., 10848., 11264., 8404.,  8824.,
      9304.,  9728.,  10220., 10648., 11152., 11584., 8612.,  9048.,  9544.,
      9984.,  10492., 10936., 11456., 11904., 8820.,  9272.,  9784.,  10240.,
      10764., 11224., 11760., 12224., 9028.,  9496.,  10024., 10496., 11036.,
      11512., 12064., 12544., 9236.,  9720.,  10264., 10752., 11308., 11800.,
      12368., 12864., 10276., 10840., 11464., 12032., 12668., 13240., 13888.,
      14464., 10484., 11064., 11704., 12288., 12940., 13528., 14192., 14784.,
      10692., 11288., 11944., 12544., 13212., 13816., 14496., 15104., 10900.,
      11512., 12184., 12800., 13484., 14104., 14800., 15424., 11108., 11736.,
      12424., 13056., 13756., 14392., 15104., 15744., 11316., 11960., 12664.,
      13312., 14028., 14680., 15408., 16064., 11524., 12184., 12904., 13568.,
      14300., 14968., 15712., 16384., 12564., 13304., 14104., 14848., 15660.,
      16408., 17232., 17984., 12772., 13528., 14344., 15104., 15932., 16696.,
      17536., 18304., 12980., 13752., 14584., 15360., 16204., 16984., 17840.,
      18624., 13188., 13976., 14824., 15616., 16476., 17272., 18144., 18944.,
      13396., 14200., 15064., 15872., 16748., 17560., 18448., 19264., 13604.,
      14424., 15304., 16128., 17020., 17848., 18752., 19584., 13812., 14648.,
      15544., 16384., 17292., 18136., 19056., 19904., 14852., 15768., 16744.,
      17664., 18652., 19576., 20576., 21504., 15060., 15992., 16984., 17920.,
      18924., 19864., 20880., 21824., 15268., 16216., 17224., 18176., 19196.,
      20152., 21184., 22144., 15476., 16440., 17464., 18432., 19468., 20440.,
      21488., 22464., 15684., 16664., 17704., 18688., 19740., 20728., 21792.,
      22784., 15892., 16888., 17944., 18944., 20012., 21016., 22096., 23104.,
      16100., 17112., 18184., 19200., 20284., 21304., 22400., 23424., 17140.,
      18232., 19384., 20480., 21644., 22744., 23920., 25024., 17348., 18456.,
      19624., 20736., 21916., 23032., 24224., 25344., 17556., 18680., 19864.,
      20992., 22188., 23320., 24528., 25664., 17764., 18904., 20104., 21248.,
      22460., 23608., 24832., 25984., 17972., 19128., 20344., 21504., 22732.,
      23896., 25136., 26304., 18180., 19352., 20584., 21760., 23004., 24184.,
      25440., 26624., 18388., 19576., 20824., 22016., 23276., 24472., 25744.,
      26944., 19428., 20696., 22024., 23296., 24636., 25912., 27264., 28544.,
      19636., 20920., 22264., 23552., 24908., 26200., 27568., 28864., 19844.,
      21144., 22504., 23808., 25180., 26488., 27872., 29184., 20052., 21368.,
      22744., 24064., 25452., 26776., 28176., 29504., 20260., 21592., 22984.,
      24320., 25724., 27064., 28480., 29824., 20468., 21816., 23224., 24576.,
      25996., 27352., 28784., 30144., 20676., 22040., 23464., 24832., 26268.,
      27640., 29088., 30464., 21716., 23160., 24664., 26112., 27628., 29080.,
      30608., 32064., 21924., 23384., 24904., 26368., 27900., 29368., 30912.,
      32384., 22132., 23608., 25144., 26624., 28172., 29656., 31216., 32704.,
      22340., 23832., 25384., 26880., 28444., 29944., 31520., 33024., 22548.,
      24056., 25624., 27136., 28716., 30232., 31824., 33344., 22756., 24280.,
      25864., 27392., 28988., 30520., 32128., 33664., 22964., 24504., 26104.,
      27648., 29260., 30808., 32432., 33984.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      238182., 239868., 241554., 243240., 245676., 247368., 249060., 250752.,
      253218., 254916., 256614., 258312., 260808., 262512., 264216., 265920.,
      241086., 242796., 244506., 246216., 248676., 250392., 252108., 253824.,
      256314., 258036., 259758., 261480., 264000., 265728., 267456., 269184.,
      338001., 340530., 343059., 345588., 349170., 351708., 354246., 356784.,
      360411., 362958., 365505., 368052., 371724., 374280., 376836., 379392.,
      342069., 344634., 347199., 349764., 353382., 355956., 358530., 361104.,
      364767., 367350., 369933., 372516., 376224., 378816., 381408., 384000.,
      346137., 348738., 351339., 353940., 357594., 360204., 362814., 365424.,
      369123., 371742., 374361., 376980., 380724., 383352., 385980., 388608.,
      213726., 215436., 217146., 218856., 221220., 222936., 224652., 226368.,
      228762., 230484., 232206., 233928., 236352., 238080., 239808., 241536.,
      216246., 217980., 219714., 221448., 223836., 225576., 227316., 229056.,
      231474., 233220., 234966., 236712., 239160., 240912., 242664., 244416.,
      270126., 272076., 274026., 275976., 278676., 280632., 282588., 284544.,
      287274., 289236., 291198., 293160., 295920., 297888., 299856., 301824.,
      273030., 275004., 276978., 278952., 281676., 283656., 285636., 287616.,
      290370., 292356., 294342., 296328., 299112., 301104., 303096., 305088.,
      382749., 385674., 388599., 391524., 395502., 398436., 401370., 404304.,
      408327., 411270., 414213., 417156., 421224., 424176., 427128., 430080.,
      386817., 389778., 392739., 395700., 399714., 402684., 405654., 408624.,
      412683., 415662., 418641., 421620., 425724., 428712., 431700., 434688.,
      390885., 393882., 396879., 399876., 403926., 406932., 409938., 412944.,
      417039., 420054., 423069., 426084., 430224., 433248., 436272., 439296.,
      241446., 243420., 245394., 247368., 249996., 251976., 253956., 255936.,
      258594., 260580., 262566., 264552., 267240., 269232., 271224., 273216.,
      243966., 245964., 247962., 249960., 252612., 254616., 256620., 258624.,
      261306., 263316., 265326., 267336., 270048., 272064., 274080., 276096.,
      303048., 305296., 307544., 309792., 312848., 315104., 317360., 319616.,
      322712., 324976., 327240., 329504., 332640., 334912., 337184., 339456.,
      306152., 308432., 310712., 312992., 316080., 318368., 320656., 322944.,
      326072., 328368., 330664., 332960., 336128., 338432., 340736., 343040.,
      428876., 432248., 435620., 438992., 443480., 446864., 450248., 453632.,
      458180., 461576., 464972., 468368., 472976., 476384., 479792., 483200.,
      433148., 436568., 439988., 443408., 447944., 451376., 454808., 458240.,
      462836., 466280., 469724., 473168., 477824., 481280., 484736., 488192.,
      437420., 440888., 444356., 447824., 452408., 455888., 459368., 462848.,
      467492., 470984., 474476., 477968., 482672., 486176., 489680., 493184.,
      269672., 271952., 274232., 276512., 279472., 281760., 284048., 286336.,
      289336., 291632., 293928., 296224., 299264., 301568., 303872., 306176.,
      272264., 274576., 276888., 279200., 282192., 284512., 286832., 289152.,
      292184., 294512., 296840., 299168., 302240., 304576., 306912., 309248.,
      337192., 339792., 342392., 344992., 348400., 351008., 353616., 356224.,
      359672., 362288., 364904., 367520., 371008., 373632., 376256., 378880.,
      340296., 342928., 345560., 348192., 351632., 354272., 356912., 359552.,
      363032., 365680., 368328., 370976., 374496., 377152., 379808., 382464.,
      475868., 479768., 483668., 487568., 492584., 496496., 500408., 504320.,
      509396., 513320., 517244., 521168., 526304., 530240., 534176., 538112.,
      480140., 484088., 488036., 491984., 497048., 501008., 504968., 508928.,
      514052., 518024., 521996., 525968., 531152., 535136., 539120., 543104.,
      484412., 488408., 492404., 496400., 501512., 505520., 509528., 513536.,
      518708., 522728., 526748., 530768., 536000., 540032., 544064., 548096.,
      298184., 300816., 303448., 306080., 309392., 312032., 314672., 317312.,
      320664., 323312., 325960., 328608., 332000., 334656., 337312., 339968.,
      300776., 303440., 306104., 308768., 312112., 314784., 317456., 320128.,
      323512., 326192., 328872., 331552., 334976., 337664., 340352., 343040.,
      157254., 158940., 160626., 162312., 164460., 166152., 167844., 169536.,
      171714., 173412., 175110., 176808., 179016., 180720., 182424., 184128.,
      159006., 160716., 162426., 164136., 166308., 168024., 169740., 171456.,
      173658., 175380., 177102., 178824., 181056., 182784., 184512., 186240.,
      216609., 219138., 221667., 224196., 227346., 229884., 232422., 234960.,
      238155., 240702., 243249., 245796., 249036., 251592., 254148., 256704.,
      218949., 221514., 224079., 226644., 229830., 232404., 234978., 237552.,
      240783., 243366., 245949., 248532., 251808., 254400., 256992., 259584.,
      221289., 223890., 226491., 229092., 232314., 234924., 237534., 240144.,
      243411., 246030., 248649., 251268., 254580., 257208., 259836., 262464.,
      131646., 133356., 135066., 136776., 138852., 140568., 142284., 144000.,
      146106., 147828., 149550., 151272., 153408., 155136., 156864., 158592.,
      133014., 134748., 136482., 138216., 140316., 142056., 143796., 145536.,
      147666., 149412., 151158., 152904., 155064., 156816., 158568., 160320.,
      176526., 178476., 180426., 182376., 184788., 186744., 188700., 190656.,
      193098., 195060., 197022., 198984., 201456., 203424., 205392., 207360.,
      178278., 180252., 182226., 184200., 186636., 188616., 190596., 192576.,
      195042., 197028., 199014., 201000., 203496., 205488., 207480., 209472.,
      242349., 245274., 248199., 251124., 254670., 257604., 260538., 263472.,
      267063., 270006., 272949., 275892., 279528., 282480., 285432., 288384.,
      244689., 247650., 250611., 253572., 257154., 260124., 263094., 266064.,
      269691., 272670., 275649., 278628., 282300., 285288., 288276., 291264.,
      247029., 250026., 253023., 256020., 259638., 262644., 265650., 268656.,
      272319., 275334., 278349., 281364., 285072., 288096., 291120., 294144.,
      146694., 148668., 150642., 152616., 154956., 156936., 158916., 160896.,
      163266., 165252., 167238., 169224., 171624., 173616., 175608., 177600.,
      148062., 150060., 152058., 154056., 156420., 158424., 160428., 162432.,
      164826., 166836., 168846., 170856., 173280., 175296., 177312., 179328.,
      195798., 198012., 200226., 202440., 205116., 207336., 209556., 211776.,
      214482., 216708., 218934., 221160., 223896., 226128., 228360., 230592.,
      197550., 199788., 202026., 204264., 206964., 209208., 211452., 213696.,
      216426., 218676., 220926., 223176., 225936., 228192., 230448., 232704.,
      268089., 271410., 274731., 278052., 281994., 285324., 288654., 291984.,
      295971., 299310., 302649., 305988., 310020., 313368., 316716., 320064.,
      270429., 273786., 277143., 280500., 284478., 287844., 291210., 294576.,
      298599., 301974., 305349., 308724., 312792., 316176., 319560., 322944.,
      272769., 276162., 279555., 282948., 286962., 290364., 293766., 297168.,
      301227., 304638., 308049., 311460., 315564., 318984., 322404., 325824.,
      161742., 163980., 166218., 168456., 171060., 173304., 175548., 177792.,
      180426., 182676., 184926., 187176., 189840., 192096., 194352., 196608.,
      163110., 165372., 167634., 169896., 172524., 174792., 177060., 179328.,
      181986., 184260., 186534., 188808., 191496., 193776., 196056., 198336.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      15588., 15976., 16364., 16752., 17256., 17648., 18040., 18432., 18956.,
      19352., 19748., 20144., 20688., 21088., 21488., 21888., 15988., 16392.,
      16796., 17200., 17720., 18128., 18536., 18944., 19484., 19896., 20308.,
      20720., 21280., 21696., 22112., 22528., 16388., 16808., 17228., 17648.,
      18184., 18608., 19032., 19456., 20012., 20440., 20868., 21296., 21872.,
      22304., 22736., 23168., 16788., 17224., 17660., 18096., 18648., 19088.,
      19528., 19968., 20540., 20984., 21428., 21872., 22464., 22912., 23360.,
      23808., 17188., 17640., 18092., 18544., 19112., 19568., 20024., 20480.,
      21068., 21528., 21988., 22448., 23056., 23520., 23984., 24448., 17588.,
      18056., 18524., 18992., 19576., 20048., 20520., 20992., 21596., 22072.,
      22548., 23024., 23648., 24128., 24608., 25088., 17988., 18472., 18956.,
      19440., 20040., 20528., 21016., 21504., 22124., 22616., 23108., 23600.,
      24240., 24736., 25232., 25728., 19988., 20552., 21116., 21680., 22360.,
      22928., 23496., 24064., 24764., 25336., 25908., 26480., 27200., 27776.,
      28352., 28928., 20388., 20968., 21548., 22128., 22824., 23408., 23992.,
      24576., 25292., 25880., 26468., 27056., 27792., 28384., 28976., 29568.,
      20788., 21384., 21980., 22576., 23288., 23888., 24488., 25088., 25820.,
      26424., 27028., 27632., 28384., 28992., 29600., 30208., 21188., 21800.,
      22412., 23024., 23752., 24368., 24984., 25600., 26348., 26968., 27588.,
      28208., 28976., 29600., 30224., 30848., 21588., 22216., 22844., 23472.,
      24216., 24848., 25480., 26112., 26876., 27512., 28148., 28784., 29568.,
      30208., 30848., 31488., 21988., 22632., 23276., 23920., 24680., 25328.,
      25976., 26624., 27404., 28056., 28708., 29360., 30160., 30816., 31472.,
      32128., 22388., 23048., 23708., 24368., 25144., 25808., 26472., 27136.,
      27932., 28600., 29268., 29936., 30752., 31424., 32096., 32768., 24388.,
      25128., 25868., 26608., 27464., 28208., 28952., 29696., 30572., 31320.,
      32068., 32816., 33712., 34464., 35216., 35968., 24788., 25544., 26300.,
      27056., 27928., 28688., 29448., 30208., 31100., 31864., 32628., 33392.,
      34304., 35072., 35840., 36608., 25188., 25960., 26732., 27504., 28392.,
      29168., 29944., 30720., 31628., 32408., 33188., 33968., 34896., 35680.,
      36464., 37248., 25588., 26376., 27164., 27952., 28856., 29648., 30440.,
      31232., 32156., 32952., 33748., 34544., 35488., 36288., 37088., 37888.,
      25988., 26792., 27596., 28400., 29320., 30128., 30936., 31744., 32684.,
      33496., 34308., 35120., 36080., 36896., 37712., 38528., 26388., 27208.,
      28028., 28848., 29784., 30608., 31432., 32256., 33212., 34040., 34868.,
      35696., 36672., 37504., 38336., 39168., 26788., 27624., 28460., 29296.,
      30248., 31088., 31928., 32768., 33740., 34584., 35428., 36272., 37264.,
      38112., 38960., 39808., 28788., 29704., 30620., 31536., 32568., 33488.,
      34408., 35328., 36380., 37304., 38228., 39152., 40224., 41152., 42080.,
      43008., 29188., 30120., 31052., 31984., 33032., 33968., 34904., 35840.,
      36908., 37848., 38788., 39728., 40816., 41760., 42704., 43648., 29588.,
      30536., 31484., 32432., 33496., 34448., 35400., 36352., 37436., 38392.,
      39348., 40304., 41408., 42368., 43328., 44288., 29988., 30952., 31916.,
      32880., 33960., 34928., 35896., 36864., 37964., 38936., 39908., 40880.,
      42000., 42976., 43952., 44928., 30388., 31368., 32348., 33328., 34424.,
      35408., 36392., 37376., 38492., 39480., 40468., 41456., 42592., 43584.,
      44576., 45568., 30788., 31784., 32780., 33776., 34888., 35888., 36888.,
      37888., 39020., 40024., 41028., 42032., 43184., 44192., 45200., 46208.,
      31188., 32200., 33212., 34224., 35352., 36368., 37384., 38400., 39548.,
      40568., 41588., 42608., 43776., 44800., 45824., 46848., 33188., 34280.,
      35372., 36464., 37672., 38768., 39864., 40960., 42188., 43288., 44388.,
      45488., 46736., 47840., 48944., 50048., 33588., 34696., 35804., 36912.,
      38136., 39248., 40360., 41472., 42716., 43832., 44948., 46064., 47328.,
      48448., 49568., 50688., 33988., 35112., 36236., 37360., 38600., 39728.,
      40856., 41984., 43244., 44376., 45508., 46640., 47920., 49056., 50192.,
      51328., 34388., 35528., 36668., 37808., 39064., 40208., 41352., 42496.,
      43772., 44920., 46068., 47216., 48512., 49664., 50816., 51968., 34788.,
      35944., 37100., 38256., 39528., 40688., 41848., 43008., 44300., 45464.,
      46628., 47792., 49104., 50272., 51440., 52608., 35188., 36360., 37532.,
      38704., 39992., 41168., 42344., 43520., 44828., 46008., 47188., 48368.,
      49696., 50880., 52064., 53248., 35588., 36776., 37964., 39152., 40456.,
      41648., 42840., 44032., 45356., 46552., 47748., 48944., 50288., 51488.,
      52688., 53888., 37588., 38856., 40124., 41392., 42776., 44048., 45320.,
      46592., 47996., 49272., 50548., 51824., 53248., 54528., 55808., 57088.,
      37988., 39272., 40556., 41840., 43240., 44528., 45816., 47104., 48524.,
      49816., 51108., 52400., 53840., 55136., 56432., 57728., 38388., 39688.,
      40988., 42288., 43704., 45008., 46312., 47616., 49052., 50360., 51668.,
      52976., 54432., 55744., 57056., 58368., 38788., 40104., 41420., 42736.,
      44168., 45488., 46808., 48128., 49580., 50904., 52228., 53552., 55024.,
      56352., 57680., 59008., 39188., 40520., 41852., 43184., 44632., 45968.,
      47304., 48640., 50108., 51448., 52788., 54128., 55616., 56960., 58304.,
      59648., 39588., 40936., 42284., 43632., 45096., 46448., 47800., 49152.,
      50636., 51992., 53348., 54704., 56208., 57568., 58928., 60288., 39988.,
      41352., 42716., 44080., 45560., 46928., 48296., 49664., 51164., 52536.,
      53908., 55280., 56800., 58176., 59552., 60928., 41988., 43432., 44876.,
      46320., 47880., 49328., 50776., 52224., 53804., 55256., 56708., 58160.,
      59760., 61216., 62672., 64128., 42388., 43848., 45308., 46768., 48344.,
      49808., 51272., 52736., 54332., 55800., 57268., 58736., 60352., 61824.,
      63296., 64768., 42788., 44264., 45740., 47216., 48808., 50288., 51768.,
      53248., 54860., 56344., 57828., 59312., 60944., 62432., 63920., 65408.,
      43188., 44680., 46172., 47664., 49272., 50768., 52264., 53760., 55388.,
      56888., 58388., 59888., 61536., 63040., 64544., 66048., 43588., 45096.,
      46604., 48112., 49736., 51248., 52760., 54272., 55916., 57432., 58948.,
      60464., 62128., 63648., 65168., 66688., 43988., 45512., 47036., 48560.,
      50200., 51728., 53256., 54784., 56444., 57976., 59508., 61040., 62720.,
      64256., 65792., 67328., 44388., 45928., 47468., 49008., 50664., 52208.,
      53752., 55296., 56972., 58520., 60068., 61616., 63312., 64864., 66416.,
      67968.};
  const std::array<int, 4> in_shape = {{1, 14, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4560., 6432., 6504., 6576., 6648., 4137., 4182., 5172., 7296., 7368.,
      7440., 7512., 4677., 4722., 5816., 8198., 8276., 8354., 8432., 5240.,
      5288., 6488., 9134., 9212., 9290., 9368., 5816., 5864., 3156., 4353.,
      4398., 4443., 4488., 2715., 2742., 3552., 4893., 4938., 4983., 5028.,
      3039., 3066., 3948., 5433., 5478., 5523., 5568., 3363., 3390.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      370.,  380.,  390.,  400.,  410.,  420.,  430.,  490.,  500.,  510.,
      520.,  530.,  540.,  550.,  610.,  620.,  630.,  640.,  650.,  660.,
      670.,  730.,  740.,  750.,  760.,  770.,  780.,  790.,  850.,  860.,
      870.,  880.,  890.,  900.,  910.,  970.,  980.,  990.,  1000., 1010.,
      1020., 1030., 1090., 1100., 1110., 1120., 1130., 1140., 1150.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8652.,  9120.,  12171., 12864., 12306., 13008., 12441., 13152., 12576.,
      13296., 7800.,  8274.,  7884.,  8364.,  9804.,  10344., 13791., 14592.,
      13926., 14736., 14061., 14880., 14196., 15024., 8808.,  9354.,  8892.,
      9444.,  11008., 11632., 15472., 16396., 15616., 16552., 15760., 16708.,
      15904., 16864., 9848.,  10480., 9936.,  10576., 12256., 12976., 17200.,
      18268., 17344., 18424., 17488., 18580., 17632., 18736., 10904., 11632.,
      10992., 11728., 5844.,  6312.,  8013.,  8706.,  8094.,  8796.,  8175.,
      8886.,  8256.,  8976.,  4956.,  5430.,  5004.,  5484.,  6564.,  7104.,
      8985.,  9786.,  9066.,  9876.,  9147.,  9966.,  9228.,  10056., 5532.,
      6078.,  5580.,  6132.,  7284.,  7896.,  9957.,  10866., 10038., 10956.,
      10119., 11046., 10200., 11136., 6108.,  6726.,  6156.,  6780.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      632.,  740.,  648.,  760.,  664.,  780.,  680.,  800.,  696.,  820.,
      712.,  840.,  728.,  860.,  824.,  980.,  840.,  1000., 856.,  1020.,
      872.,  1040., 888.,  1060., 904.,  1080., 920.,  1100., 1016., 1220.,
      1032., 1240., 1048., 1260., 1064., 1280., 1080., 1300., 1096., 1320.,
      1112., 1340., 1208., 1460., 1224., 1480., 1240., 1500., 1256., 1520.,
      1272., 1540., 1288., 1560., 1304., 1580., 1400., 1700., 1416., 1720.,
      1432., 1740., 1448., 1760., 1464., 1780., 1480., 1800., 1496., 1820.,
      1592., 1940., 1608., 1960., 1624., 1980., 1640., 2000., 1656., 2020.,
      1672., 2040., 1688., 2060., 1784., 2180., 1800., 2200., 1816., 2220.,
      1832., 2240., 1848., 2260., 1864., 2280., 1880., 2300.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      16836., 17304., 17772., 18240., 23649., 24342., 25035., 25728., 23910.,
      24612., 25314., 26016., 24171., 24882., 25593., 26304., 24432., 25152.,
      25872., 26592., 15126., 15600., 16074., 16548., 15288., 15768., 16248.,
      16728., 19068., 19608., 20148., 20688., 26781., 27582., 28383., 29184.,
      27042., 27852., 28662., 29472., 27303., 28122., 28941., 29760., 27564.,
      28392., 29220., 30048., 17070., 17616., 18162., 18708., 17232., 17784.,
      18336., 18888., 21392., 22016., 22640., 23264., 30020., 30944., 31868.,
      32792., 30296., 31232., 32168., 33104., 30572., 31520., 32468., 33416.,
      30848., 31808., 32768., 33728., 19064., 19696., 20328., 20960., 19232.,
      19872., 20512., 21152., 23792., 24512., 25232., 25952., 33332., 34400.,
      35468., 36536., 33608., 34688., 35768., 36848., 33884., 34976., 36068.,
      37160., 34160., 35264., 36368., 37472., 21080., 21808., 22536., 23264.,
      21248., 21984., 22720., 23456., 11220., 11688., 12156., 12624., 15333.,
      16026., 16719., 17412., 15486., 16188., 16890., 17592., 15639., 16350.,
      17061., 17772., 15792., 16512., 17232., 17952., 9438.,  9912.,  10386.,
      10860., 9528.,  10008., 10488., 10968., 12588., 13128., 13668., 14208.,
      17169., 17970., 18771., 19572., 17322., 18132., 18942., 19752., 17475.,
      18294., 19113., 19932., 17628., 18456., 19284., 20112., 10518., 11064.,
      11610., 12156., 10608., 11160., 11712., 12264., 13956., 14568., 15180.,
      15792., 19005., 19914., 20823., 21732., 19158., 20076., 20994., 21912.,
      19311., 20238., 21165., 22092., 19464., 20400., 21336., 22272., 11598.,
      12216., 12834., 13452., 11688., 12312., 12936., 13560.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1156., 1264., 1372., 1480., 1184., 1296., 1408., 1520., 1212., 1328.,
      1444., 1560., 1240., 1360., 1480., 1600., 1268., 1392., 1516., 1640.,
      1296., 1424., 1552., 1680., 1324., 1456., 1588., 1720., 1492., 1648.,
      1804., 1960., 1520., 1680., 1840., 2000., 1548., 1712., 1876., 2040.,
      1576., 1744., 1912., 2080., 1604., 1776., 1948., 2120., 1632., 1808.,
      1984., 2160., 1660., 1840., 2020., 2200., 1828., 2032., 2236., 2440.,
      1856., 2064., 2272., 2480., 1884., 2096., 2308., 2520., 1912., 2128.,
      2344., 2560., 1940., 2160., 2380., 2600., 1968., 2192., 2416., 2640.,
      1996., 2224., 2452., 2680., 2164., 2416., 2668., 2920., 2192., 2448.,
      2704., 2960., 2220., 2480., 2740., 3000., 2248., 2512., 2776., 3040.,
      2276., 2544., 2812., 3080., 2304., 2576., 2848., 3120., 2332., 2608.,
      2884., 3160., 2500., 2800., 3100., 3400., 2528., 2832., 3136., 3440.,
      2556., 2864., 3172., 3480., 2584., 2896., 3208., 3520., 2612., 2928.,
      3244., 3560., 2640., 2960., 3280., 3600., 2668., 2992., 3316., 3640.,
      2836., 3184., 3532., 3880., 2864., 3216., 3568., 3920., 2892., 3248.,
      3604., 3960., 2920., 3280., 3640., 4000., 2948., 3312., 3676., 4040.,
      2976., 3344., 3712., 4080., 3004., 3376., 3748., 4120., 3172., 3568.,
      3964., 4360., 3200., 3600., 4000., 4400., 3228., 3632., 4036., 4440.,
      3256., 3664., 4072., 4480., 3284., 3696., 4108., 4520., 3312., 3728.,
      4144., 4560., 3340., 3760., 4180., 4600.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      17208., 18240., 24207., 25728., 24477., 26016., 24747., 26304., 25017.,
      26592., 15516., 16548., 15684., 16728., 19512., 20688., 27447., 29184.,
      27717., 29472., 27987., 29760., 28257., 30048., 17532., 18708., 17700.,
      18888., 21912., 23264., 30800., 32792., 31088., 33104., 31376., 33416.,
      31664., 33728., 19608., 20960., 19784., 21152., 24408., 25952., 34256.,
      36536., 34544., 36848., 34832., 37160., 35120., 37472., 21720., 23264.,
      21896., 23456., 11628., 12624., 15945., 17412., 16107., 17592., 16269.,
      17772., 16431., 17952., 9864.,  10860., 9960.,  10968., 13068., 14208.,
      17889., 19572., 18051., 19752., 18213., 19932., 18375., 20112., 11016.,
      12156., 11112., 12264., 14508., 15792., 19833., 21732., 19995., 21912.,
      20157., 22092., 20319., 22272., 12168., 13452., 12264., 13560.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1248., 1480., 1280., 1520., 1312., 1560., 1344., 1600., 1376., 1640.,
      1408., 1680., 1440., 1720., 1632., 1960., 1664., 2000., 1696., 2040.,
      1728., 2080., 1760., 2120., 1792., 2160., 1824., 2200., 2016., 2440.,
      2048., 2480., 2080., 2520., 2112., 2560., 2144., 2600., 2176., 2640.,
      2208., 2680., 2400., 2920., 2432., 2960., 2464., 3000., 2496., 3040.,
      2528., 3080., 2560., 3120., 2592., 3160., 2784., 3400., 2816., 3440.,
      2848., 3480., 2880., 3520., 2912., 3560., 2944., 3600., 2976., 3640.,
      3168., 3880., 3200., 3920., 3232., 3960., 3264., 4000., 3296., 4040.,
      3328., 4080., 3360., 4120., 3552., 4360., 3584., 4400., 3616., 4440.,
      3648., 4480., 3680., 4520., 3712., 4560., 3744., 4600.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      33486., 34416., 35544., 36480., 47037., 48414., 50070., 51456., 47559.,
      48954., 50628., 52032., 48081., 49494., 51186., 52608., 48603., 50034.,
      51744., 53184., 30090., 31032., 32148., 33096., 30414., 31368., 32496.,
      33456., 37950., 39024., 40296., 41376., 53301., 54894., 56766., 58368.,
      53823., 55434., 57324., 58944., 54345., 55974., 57882., 59520., 54867.,
      56514., 58440., 60096., 33978., 35064., 36324., 37416., 34302., 35400.,
      36672., 37776., 42584., 43824., 45280., 46528., 59764., 61600., 63736.,
      65584., 60316., 62176., 64336., 66208., 60868., 62752., 64936., 66832.,
      61420., 63328., 65536., 67456., 37960., 39216., 40656., 41920., 38296.,
      39568., 41024., 42304., 47384., 48816., 50464., 51904., 66388., 68512.,
      70936., 73072., 66940., 69088., 71536., 73696., 67492., 69664., 72136.,
      74320., 68044., 70240., 72736., 74944., 41992., 43440., 45072., 46528.,
      42328., 43792., 45440., 46912., 22326., 23256., 24312., 25248., 30513.,
      31890., 33438., 34824., 30819., 32214., 33780., 35184., 31125., 32538.,
      34122., 35544., 31431., 32862., 34464., 35904., 18786., 19728., 20772.,
      21720., 18966., 19920., 20976., 21936., 25062., 26136., 27336., 28416.,
      34185., 35778., 37542., 39144., 34491., 36102., 37884., 39504., 34797.,
      36426., 38226., 39864., 35103., 36750., 38568., 40224., 20946., 22032.,
      23220., 24312., 21126., 22224., 23424., 24528., 27798., 29016., 30360.,
      31584., 37857., 39666., 41646., 43464., 38163., 39990., 41988., 43824.,
      38469., 40314., 42330., 44184., 38775., 40638., 42672., 44544., 23106.,
      24336., 25668., 26904., 23286., 24528., 25872., 27120.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2284., 2496., 2744., 2960., 2340., 2560., 2816., 3040., 2396., 2624.,
      2888., 3120., 2452., 2688., 2960., 3200., 2508., 2752., 3032., 3280.,
      2564., 2816., 3104., 3360., 2620., 2880., 3176., 3440., 2956., 3264.,
      3608., 3920., 3012., 3328., 3680., 4000., 3068., 3392., 3752., 4080.,
      3124., 3456., 3824., 4160., 3180., 3520., 3896., 4240., 3236., 3584.,
      3968., 4320., 3292., 3648., 4040., 4400., 3628., 4032., 4472., 4880.,
      3684., 4096., 4544., 4960., 3740., 4160., 4616., 5040., 3796., 4224.,
      4688., 5120., 3852., 4288., 4760., 5200., 3908., 4352., 4832., 5280.,
      3964., 4416., 4904., 5360., 4300., 4800., 5336., 5840., 4356., 4864.,
      5408., 5920., 4412., 4928., 5480., 6000., 4468., 4992., 5552., 6080.,
      4524., 5056., 5624., 6160., 4580., 5120., 5696., 6240., 4636., 5184.,
      5768., 6320., 4972., 5568., 6200., 6800., 5028., 5632., 6272., 6880.,
      5084., 5696., 6344., 6960., 5140., 5760., 6416., 7040., 5196., 5824.,
      6488., 7120., 5252., 5888., 6560., 7200., 5308., 5952., 6632., 7280.,
      5644., 6336., 7064., 7760., 5700., 6400., 7136., 7840., 5756., 6464.,
      7208., 7920., 5812., 6528., 7280., 8000., 5868., 6592., 7352., 8080.,
      5924., 6656., 7424., 8160., 5980., 6720., 7496., 8240., 6316., 7104.,
      7928., 8720., 6372., 7168., 8000., 8800., 6428., 7232., 8072., 8880.,
      6484., 7296., 8144., 8960., 6540., 7360., 8216., 9040., 6596., 7424.,
      8288., 9120., 6652., 7488., 8360., 9200.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66042.,  66972.,  67902.,  68832.,  70152.,  71088.,  72024.,  72960.,
      92697.,  94074.,  95451.,  96828.,  98754.,  100140., 101526., 102912.,
      93723.,  95118.,  96513.,  97908.,  99852.,  101256., 102660., 104064.,
      94749.,  96162.,  97575.,  98988.,  100950., 102372., 103794., 105216.,
      95775.,  97206.,  98637.,  100068., 102048., 103488., 104928., 106368.,
      59238.,  60180.,  61122.,  62064.,  63348.,  64296.,  65244.,  66192.,
      59874.,  60828.,  61782.,  62736.,  64032.,  64992.,  65952.,  66912.,
      74826.,  75900.,  76974.,  78048.,  79512.,  80592.,  81672.,  82752.,
      105009., 106602., 108195., 109788., 111930., 113532., 115134., 116736.,
      106035., 107646., 109257., 110868., 113028., 114648., 116268., 117888.,
      107061., 108690., 110319., 111948., 114126., 115764., 117402., 119040.,
      108087., 109734., 111381., 113028., 115224., 116880., 118536., 120192.,
      66870.,  67956.,  69042.,  70128.,  71556.,  72648.,  73740.,  74832.,
      67506.,  68604.,  69702.,  70800.,  72240.,  73344.,  74448.,  75552.,
      83928.,  85168.,  86408.,  87648.,  89312.,  90560.,  91808.,  93056.,
      117692., 119528., 121364., 123200., 125624., 127472., 129320., 131168.,
      118772., 120632., 122492., 124352., 126800., 128672., 130544., 132416.,
      119852., 121736., 123620., 125504., 127976., 129872., 131768., 133664.,
      120932., 122840., 124748., 126656., 129152., 131072., 132992., 134912.,
      74664.,  75920.,  77176.,  78432.,  80048.,  81312.,  82576.,  83840.,
      75320.,  76592.,  77864.,  79136.,  80768.,  82048.,  83328.,  84608.,
      93336.,  94768.,  96200.,  97632.,  99488.,  100928., 102368., 103808.,
      130652., 132776., 134900., 137024., 139736., 141872., 144008., 146144.,
      131732., 133880., 136028., 138176., 140912., 143072., 145232., 147392.,
      132812., 134984., 137156., 139328., 142088., 144272., 146456., 148640.,
      133892., 136088., 138284., 140480., 143264., 145472., 147680., 149888.,
      82536.,  83984.,  85432.,  86880.,  88688.,  90144.,  91600.,  93056.,
      83192.,  84656.,  86120.,  87584.,  89408.,  90880.,  92352.,  93824.,
      43722.,  44652.,  45582.,  46512.,  47688.,  48624.,  49560.,  50496.,
      59649.,  61026.,  62403.,  63780.,  65490.,  66876.,  68262.,  69648.,
      60243.,  61638.,  63033.,  64428.,  66156.,  67560.,  68964.,  70368.,
      60837.,  62250.,  63663.,  65076.,  66822.,  68244.,  69666.,  71088.,
      61431.,  62862.,  64293.,  65724.,  67488.,  68928.,  70368.,  71808.,
      36630.,  37572.,  38514.,  39456.,  40596.,  41544.,  42492.,  43440.,
      36978.,  37932.,  38886.,  39840.,  40992.,  41952.,  42912.,  43872.,
      49050.,  50124.,  51198.,  52272.,  53592.,  54672.,  55752.,  56832.,
      66777.,  68370.,  69963.,  71556.,  73482.,  75084.,  76686.,  78288.,
      67371.,  68982.,  70593.,  72204.,  74148.,  75768.,  77388.,  79008.,
      67965.,  69594.,  71223.,  72852.,  74814.,  76452.,  78090.,  79728.,
      68559.,  70206.,  71853.,  73500.,  75480.,  77136.,  78792.,  80448.,
      40806.,  41892.,  42978.,  44064.,  45348.,  46440.,  47532.,  48624.,
      41154.,  42252.,  43350.,  44448.,  45744.,  46848.,  47952.,  49056.,
      54378.,  55596.,  56814.,  58032.,  59496.,  60720.,  61944.,  63168.,
      73905.,  75714.,  77523.,  79332.,  81474.,  83292.,  85110.,  86928.,
      74499.,  76326.,  78153.,  79980.,  82140.,  83976.,  85812.,  87648.,
      75093.,  76938.,  78783.,  80628.,  82806.,  84660.,  86514.,  88368.,
      75687.,  77550.,  79413.,  81276.,  83472.,  85344.,  87216.,  89088.,
      44982.,  46212.,  47442.,  48672.,  50100.,  51336.,  52572.,  53808.,
      45330.,  46572.,  47814.,  49056.,  50496.,  51744.,  52992.,  54240.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4356.,  4568.,  4780.,  4992.,  5272.,  5488.,  5704.,  5920.,  4460.,
      4680.,  4900.,  5120.,  5408.,  5632.,  5856.,  6080.,  4564.,  4792.,
      5020.,  5248.,  5544.,  5776.,  6008.,  6240.,  4668.,  4904.,  5140.,
      5376.,  5680.,  5920.,  6160.,  6400.,  4772.,  5016.,  5260.,  5504.,
      5816.,  6064.,  6312.,  6560.,  4876.,  5128.,  5380.,  5632.,  5952.,
      6208.,  6464.,  6720.,  4980.,  5240.,  5500.,  5760.,  6088.,  6352.,
      6616.,  6880.,  5604.,  5912.,  6220.,  6528.,  6904.,  7216.,  7528.,
      7840.,  5708.,  6024.,  6340.,  6656.,  7040.,  7360.,  7680.,  8000.,
      5812.,  6136.,  6460.,  6784.,  7176.,  7504.,  7832.,  8160.,  5916.,
      6248.,  6580.,  6912.,  7312.,  7648.,  7984.,  8320.,  6020.,  6360.,
      6700.,  7040.,  7448.,  7792.,  8136.,  8480.,  6124.,  6472.,  6820.,
      7168.,  7584.,  7936.,  8288.,  8640.,  6228.,  6584.,  6940.,  7296.,
      7720.,  8080.,  8440.,  8800.,  6852.,  7256.,  7660.,  8064.,  8536.,
      8944.,  9352.,  9760.,  6956.,  7368.,  7780.,  8192.,  8672.,  9088.,
      9504.,  9920.,  7060.,  7480.,  7900.,  8320.,  8808.,  9232.,  9656.,
      10080., 7164.,  7592.,  8020.,  8448.,  8944.,  9376.,  9808.,  10240.,
      7268.,  7704.,  8140.,  8576.,  9080.,  9520.,  9960.,  10400., 7372.,
      7816.,  8260.,  8704.,  9216.,  9664.,  10112., 10560., 7476.,  7928.,
      8380.,  8832.,  9352.,  9808.,  10264., 10720., 8100.,  8600.,  9100.,
      9600.,  10168., 10672., 11176., 11680., 8204.,  8712.,  9220.,  9728.,
      10304., 10816., 11328., 11840., 8308.,  8824.,  9340.,  9856.,  10440.,
      10960., 11480., 12000., 8412.,  8936.,  9460.,  9984.,  10576., 11104.,
      11632., 12160., 8516.,  9048.,  9580.,  10112., 10712., 11248., 11784.,
      12320., 8620.,  9160.,  9700.,  10240., 10848., 11392., 11936., 12480.,
      8724.,  9272.,  9820.,  10368., 10984., 11536., 12088., 12640., 9348.,
      9944.,  10540., 11136., 11800., 12400., 13000., 13600., 9452.,  10056.,
      10660., 11264., 11936., 12544., 13152., 13760., 9556.,  10168., 10780.,
      11392., 12072., 12688., 13304., 13920., 9660.,  10280., 10900., 11520.,
      12208., 12832., 13456., 14080., 9764.,  10392., 11020., 11648., 12344.,
      12976., 13608., 14240., 9868.,  10504., 11140., 11776., 12480., 13120.,
      13760., 14400., 9972.,  10616., 11260., 11904., 12616., 13264., 13912.,
      14560., 10596., 11288., 11980., 12672., 13432., 14128., 14824., 15520.,
      10700., 11400., 12100., 12800., 13568., 14272., 14976., 15680., 10804.,
      11512., 12220., 12928., 13704., 14416., 15128., 15840., 10908., 11624.,
      12340., 13056., 13840., 14560., 15280., 16000., 11012., 11736., 12460.,
      13184., 13976., 14704., 15432., 16160., 11116., 11848., 12580., 13312.,
      14112., 14848., 15584., 16320., 11220., 11960., 12700., 13440., 14248.,
      14992., 15736., 16480., 11844., 12632., 13420., 14208., 15064., 15856.,
      16648., 17440., 11948., 12744., 13540., 14336., 15200., 16000., 16800.,
      17600., 12052., 12856., 13660., 14464., 15336., 16144., 16952., 17760.,
      12156., 12968., 13780., 14592., 15472., 16288., 17104., 17920., 12260.,
      13080., 13900., 14720., 15608., 16432., 17256., 18080., 12364., 13192.,
      14020., 14848., 15744., 16576., 17408., 18240., 12468., 13304., 14140.,
      14976., 15880., 16720., 17560., 18400.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66786.,  68832.,  70890.,  72960.,  93813.,  96828.,  99861.,  102912.,
      94857.,  97908.,  100977., 104064., 95901.,  98988.,  102093., 105216.,
      96945.,  100068., 103209., 106368., 60018.,  62064.,  64122.,  66192.,
      60666.,  62736.,  64818.,  66912.,  75714.,  78048.,  80394.,  82752.,
      106341., 109788., 113253., 116736., 107385., 110868., 114369., 117888.,
      108429., 111948., 115485., 119040., 109473., 113028., 116601., 120192.,
      67794.,  70128.,  72474.,  74832.,  68442.,  70800.,  73170.,  75552.,
      84968.,  87648.,  90344.,  93056.,  119252., 123200., 127172., 131168.,
      120356., 124352., 128372., 132416., 121460., 125504., 129572., 133664.,
      122564., 126656., 130772., 134912., 75752.,  78432.,  81128.,  83840.,
      76424.,  79136.,  81864.,  84608.,  94568.,  97632.,  100712., 103808.,
      132500., 137024., 141572., 146144., 133604., 138176., 142772., 147392.,
      134708., 139328., 143972., 148640., 135812., 140480., 145172., 149888.,
      83816.,  86880.,  89960.,  93056.,  84488.,  87584.,  90696.,  93824.,
      44538.,  46512.,  48498.,  50496.,  60873.,  63780.,  66705.,  69648.,
      61485.,  64428.,  67389.,  70368.,  62097.,  65076.,  68073.,  71088.,
      62709.,  65724.,  68757.,  71808.,  37482.,  39456.,  41442.,  43440.,
      37842.,  39840.,  41850.,  43872.,  50010.,  52272.,  54546.,  56832.,
      68217.,  71556.,  74913.,  78288.,  68829.,  72204.,  75597.,  79008.,
      69441.,  72852.,  76281.,  79728.,  70053.,  73500.,  76965.,  80448.,
      41802.,  44064.,  46338.,  48624.,  42162.,  44448.,  46746.,  49056.,
      55482.,  58032.,  60594.,  63168.,  75561.,  79332.,  83121.,  86928.,
      76173.,  79980.,  83805.,  87648.,  76785.,  80628.,  84489.,  88368.,
      77397.,  81276.,  85173.,  89088.,  46122.,  48672.,  51234.,  53808.,
      46482.,  49056.,  51642.,  54240.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4540.,  4992.,  5452.,  5920.,  4652.,  5120.,  5596.,  6080.,  4764.,
      5248.,  5740.,  6240.,  4876.,  5376.,  5884.,  6400.,  4988.,  5504.,
      6028.,  6560.,  5100.,  5632.,  6172.,  6720.,  5212.,  5760.,  6316.,
      6880.,  5884.,  6528.,  7180.,  7840.,  5996.,  6656.,  7324.,  8000.,
      6108.,  6784.,  7468.,  8160.,  6220.,  6912.,  7612.,  8320.,  6332.,
      7040.,  7756.,  8480.,  6444.,  7168.,  7900.,  8640.,  6556.,  7296.,
      8044.,  8800.,  7228.,  8064.,  8908.,  9760.,  7340.,  8192.,  9052.,
      9920.,  7452.,  8320.,  9196.,  10080., 7564.,  8448.,  9340.,  10240.,
      7676.,  8576.,  9484.,  10400., 7788.,  8704.,  9628.,  10560., 7900.,
      8832.,  9772.,  10720., 8572.,  9600.,  10636., 11680., 8684.,  9728.,
      10780., 11840., 8796.,  9856.,  10924., 12000., 8908.,  9984.,  11068.,
      12160., 9020.,  10112., 11212., 12320., 9132.,  10240., 11356., 12480.,
      9244.,  10368., 11500., 12640., 9916.,  11136., 12364., 13600., 10028.,
      11264., 12508., 13760., 10140., 11392., 12652., 13920., 10252., 11520.,
      12796., 14080., 10364., 11648., 12940., 14240., 10476., 11776., 13084.,
      14400., 10588., 11904., 13228., 14560., 11260., 12672., 14092., 15520.,
      11372., 12800., 14236., 15680., 11484., 12928., 14380., 15840., 11596.,
      13056., 14524., 16000., 11708., 13184., 14668., 16160., 11820., 13312.,
      14812., 16320., 11932., 13440., 14956., 16480., 12604., 14208., 15820.,
      17440., 12716., 14336., 15964., 17600., 12828., 14464., 16108., 17760.,
      12940., 14592., 16252., 17920., 13052., 14720., 16396., 18080., 13164.,
      14848., 16540., 18240., 13276., 14976., 16684., 18400.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      131718., 133572., 135804., 137664., 139914., 141780., 144048., 145920.,
      184881., 187626., 190902., 193656., 196959., 199722., 203052., 205824.,
      186933., 189714., 193026., 195816., 199155., 201954., 205320., 208128.,
      188985., 191802., 195150., 197976., 201351., 204186., 207588., 210432.,
      191037., 193890., 197274., 200136., 203547., 206418., 209856., 212736.,
      118158., 120036., 122244., 124128., 126354., 128244., 130488., 132384.,
      119430., 121332., 123564., 125472., 127722., 129636., 131904., 133824.,
      149286., 151428., 153948., 156096., 158634., 160788., 163344., 165504.,
      209505., 212682., 216390., 219576., 223311., 226506., 230268., 233472.,
      211557., 214770., 218514., 221736., 225507., 228738., 232536., 235776.,
      213609., 216858., 220638., 223896., 227703., 230970., 234804., 238080.,
      215661., 218946., 222762., 226056., 229899., 233202., 237072., 240384.,
      133422., 135588., 138084., 140256., 142770., 144948., 147480., 149664.,
      134694., 136884., 139404., 141600., 144138., 146340., 148896., 151104.,
      167464., 169936., 172816., 175296., 178200., 180688., 183616., 186112.,
      234844., 238504., 242728., 246400., 250660., 254344., 258640., 262336.,
      237004., 240712., 244984., 248704., 253012., 256744., 261088., 264832.,
      239164., 242920., 247240., 251008., 255364., 259144., 263536., 267328.,
      241324., 245128., 249496., 253312., 257716., 261544., 265984., 269824.,
      149000., 151504., 154352., 156864., 159736., 162256., 165152., 167680.,
      150312., 152848., 155728., 158272., 161176., 163728., 166656., 169216.,
      186280., 189136., 192400., 195264., 198552., 201424., 204736., 207616.,
      260764., 265000., 269800., 274048., 278884., 283144., 288016., 292288.,
      262924., 267208., 272056., 276352., 281236., 285544., 290464., 294784.,
      265084., 269416., 274312., 278656., 283588., 287944., 292912., 297280.,
      267244., 271624., 276568., 280960., 285940., 290344., 295360., 299776.,
      164744., 167632., 170864., 173760., 177016., 179920., 183200., 186112.,
      166056., 168976., 172240., 175168., 178456., 181392., 184704., 187648.,
      87222.,  89076.,  91164.,  93024.,  95130.,  96996.,  99120.,  100992.,
      119001., 121746., 124806., 127560., 130647., 133410., 136524., 139296.,
      120189., 122970., 126066., 128856., 131979., 134778., 137928., 140736.,
      121377., 124194., 127326., 130152., 133311., 136146., 139332., 142176.,
      122565., 125418., 128586., 131448., 134643., 137514., 140736., 143616.,
      73086.,  74964.,  77028.,  78912.,  80994.,  82884.,  84984.,  86880.,
      73782.,  75684.,  77772.,  79680.,  81786.,  83700.,  85824.,  87744.,
      97878.,  100020., 102396., 104544., 106938., 109092., 111504., 113664.,
      133257., 136434., 139926., 143112., 146631., 149826., 153372., 156576.,
      134445., 137658., 141186., 144408., 147963., 151194., 154776., 158016.,
      135633., 138882., 142446., 145704., 149295., 152562., 156180., 159456.,
      136821., 140106., 143706., 147000., 150627., 153930., 157584., 160896.,
      81438.,  83604.,  85956.,  88128.,  90498.,  92676.,  95064.,  97248.,
      82134.,  84324.,  86700.,  88896.,  91290.,  93492.,  95904.,  98112.,
      108534., 110964., 113628., 116064., 118746., 121188., 123888., 126336.,
      147513., 151122., 155046., 158664., 162615., 166242., 170220., 173856.,
      148701., 152346., 156306., 159960., 163947., 167610., 171624., 175296.,
      149889., 153570., 157566., 161256., 165279., 168978., 173028., 176736.,
      151077., 154794., 158826., 162552., 166611., 170346., 174432., 178176.,
      89790.,  92244.,  94884.,  97344.,  100002., 102468., 105144., 107616.,
      90486.,  92964.,  95628.,  98112.,  100794., 103284., 105984., 108480.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      8660.,  9080.,  9560.,  9984.,  10476., 10904., 11408., 11840., 8868.,
      9304.,  9800.,  10240., 10748., 11192., 11712., 12160., 9076.,  9528.,
      10040., 10496., 11020., 11480., 12016., 12480., 9284.,  9752.,  10280.,
      10752., 11292., 11768., 12320., 12800., 9492.,  9976.,  10520., 11008.,
      11564., 12056., 12624., 13120., 9700.,  10200., 10760., 11264., 11836.,
      12344., 12928., 13440., 9908.,  10424., 11000., 11520., 12108., 12632.,
      13232., 13760., 11156., 11768., 12440., 13056., 13740., 14360., 15056.,
      15680., 11364., 11992., 12680., 13312., 14012., 14648., 15360., 16000.,
      11572., 12216., 12920., 13568., 14284., 14936., 15664., 16320., 11780.,
      12440., 13160., 13824., 14556., 15224., 15968., 16640., 11988., 12664.,
      13400., 14080., 14828., 15512., 16272., 16960., 12196., 12888., 13640.,
      14336., 15100., 15800., 16576., 17280., 12404., 13112., 13880., 14592.,
      15372., 16088., 16880., 17600., 13652., 14456., 15320., 16128., 17004.,
      17816., 18704., 19520., 13860., 14680., 15560., 16384., 17276., 18104.,
      19008., 19840., 14068., 14904., 15800., 16640., 17548., 18392., 19312.,
      20160., 14276., 15128., 16040., 16896., 17820., 18680., 19616., 20480.,
      14484., 15352., 16280., 17152., 18092., 18968., 19920., 20800., 14692.,
      15576., 16520., 17408., 18364., 19256., 20224., 21120., 14900., 15800.,
      16760., 17664., 18636., 19544., 20528., 21440., 16148., 17144., 18200.,
      19200., 20268., 21272., 22352., 23360., 16356., 17368., 18440., 19456.,
      20540., 21560., 22656., 23680., 16564., 17592., 18680., 19712., 20812.,
      21848., 22960., 24000., 16772., 17816., 18920., 19968., 21084., 22136.,
      23264., 24320., 16980., 18040., 19160., 20224., 21356., 22424., 23568.,
      24640., 17188., 18264., 19400., 20480., 21628., 22712., 23872., 24960.,
      17396., 18488., 19640., 20736., 21900., 23000., 24176., 25280., 18644.,
      19832., 21080., 22272., 23532., 24728., 26000., 27200., 18852., 20056.,
      21320., 22528., 23804., 25016., 26304., 27520., 19060., 20280., 21560.,
      22784., 24076., 25304., 26608., 27840., 19268., 20504., 21800., 23040.,
      24348., 25592., 26912., 28160., 19476., 20728., 22040., 23296., 24620.,
      25880., 27216., 28480., 19684., 20952., 22280., 23552., 24892., 26168.,
      27520., 28800., 19892., 21176., 22520., 23808., 25164., 26456., 27824.,
      29120., 21140., 22520., 23960., 25344., 26796., 28184., 29648., 31040.,
      21348., 22744., 24200., 25600., 27068., 28472., 29952., 31360., 21556.,
      22968., 24440., 25856., 27340., 28760., 30256., 31680., 21764., 23192.,
      24680., 26112., 27612., 29048., 30560., 32000., 21972., 23416., 24920.,
      26368., 27884., 29336., 30864., 32320., 22180., 23640., 25160., 26624.,
      28156., 29624., 31168., 32640., 22388., 23864., 25400., 26880., 28428.,
      29912., 31472., 32960., 23636., 25208., 26840., 28416., 30060., 31640.,
      33296., 34880., 23844., 25432., 27080., 28672., 30332., 31928., 33600.,
      35200., 24052., 25656., 27320., 28928., 30604., 32216., 33904., 35520.,
      24260., 25880., 27560., 29184., 30876., 32504., 34208., 35840., 24468.,
      26104., 27800., 29440., 31148., 32792., 34512., 36160., 24676., 26328.,
      28040., 29696., 31420., 33080., 34816., 36480., 24884., 26552., 28280.,
      29952., 31692., 33368., 35120., 36800.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      261582., 263436., 265290., 267144., 269748., 271608., 273468., 275328.,
      277962., 279828., 281694., 283560., 286224., 288096., 289968., 291840.,
      367017., 369762., 372507., 375252., 379050., 381804., 384558., 387312.,
      391155., 393918., 396681., 399444., 403332., 406104., 408876., 411648.,
      371085., 373866., 376647., 379428., 383262., 386052., 388842., 391632.,
      395511., 398310., 401109., 403908., 407832., 410640., 413448., 416256.,
      375153., 377970., 380787., 383604., 387474., 390300., 393126., 395952.,
      399867., 402702., 405537., 408372., 412332., 415176., 418020., 420864.,
      379221., 382074., 384927., 387780., 391686., 394548., 397410., 400272.,
      404223., 407094., 409965., 412836., 416832., 419712., 422592., 425472.,
      234438., 236316., 238194., 240072., 242604., 244488., 246372., 248256.,
      250818., 252708., 254598., 256488., 259080., 260976., 262872., 264768.,
      236958., 238860., 240762., 242664., 245220., 247128., 249036., 250944.,
      253530., 255444., 257358., 259272., 261888., 263808., 265728., 267648.,
      296430., 298572., 300714., 302856., 305748., 307896., 310044., 312192.,
      315114., 317268., 319422., 321576., 324528., 326688., 328848., 331008.,
      415833., 419010., 422187., 425364., 429594., 432780., 435966., 439152.,
      443427., 446622., 449817., 453012., 457332., 460536., 463740., 466944.,
      419901., 423114., 426327., 429540., 433806., 437028., 440250., 443472.,
      447783., 451014., 454245., 457476., 461832., 465072., 468312., 471552.,
      423969., 427218., 430467., 433716., 438018., 441276., 444534., 447792.,
      452139., 455406., 458673., 461940., 466332., 469608., 472884., 476160.,
      428037., 431322., 434607., 437892., 442230., 445524., 448818., 452112.,
      456495., 459798., 463101., 466404., 470832., 474144., 477456., 480768.,
      264678., 266844., 269010., 271176., 273996., 276168., 278340., 280512.,
      283362., 285540., 287718., 289896., 292776., 294960., 297144., 299328.,
      267198., 269388., 271578., 273768., 276612., 278808., 281004., 283200.,
      286074., 288276., 290478., 292680., 295584., 297792., 300000., 302208.,
      332456., 334928., 337400., 339872., 343152., 345632., 348112., 350592.,
      353912., 356400., 358888., 361376., 364736., 367232., 369728., 372224.,
      466028., 469688., 473348., 477008., 481784., 485456., 489128., 492800.,
      497636., 501320., 505004., 508688., 513584., 517280., 520976., 524672.,
      470300., 474008., 477716., 481424., 486248., 489968., 493688., 497408.,
      502292., 506024., 509756., 513488., 518432., 522176., 525920., 529664.,
      474572., 478328., 482084., 485840., 490712., 494480., 498248., 502016.,
      506948., 510728., 514508., 518288., 523280., 527072., 530864., 534656.,
      478844., 482648., 486452., 490256., 495176., 498992., 502808., 506624.,
      511604., 515432., 519260., 523088., 528128., 531968., 535808., 539648.,
      295496., 298000., 300504., 303008., 306192., 308704., 311216., 313728.,
      316952., 319472., 321992., 324512., 327776., 330304., 332832., 335360.,
      298088., 300624., 303160., 305696., 308912., 311456., 314000., 316544.,
      319800., 322352., 324904., 327456., 330752., 333312., 335872., 338432.,
      369704., 372560., 375416., 378272., 381936., 384800., 387664., 390528.,
      394232., 397104., 399976., 402848., 406592., 409472., 412352., 415232.,
      517292., 521528., 525764., 530000., 535352., 539600., 543848., 548096.,
      553508., 557768., 562028., 566288., 571760., 576032., 580304., 584576.,
      521564., 525848., 530132., 534416., 539816., 544112., 548408., 552704.,
      558164., 562472., 566780., 571088., 576608., 580928., 585248., 589568.,
      525836., 530168., 534500., 538832., 544280., 548624., 552968., 557312.,
      562820., 567176., 571532., 575888., 581456., 585824., 590192., 594560.,
      530108., 534488., 538868., 543248., 548744., 553136., 557528., 561920.,
      567476., 571880., 576284., 580688., 586304., 590720., 595136., 599552.,
      326600., 329488., 332376., 335264., 338832., 341728., 344624., 347520.,
      351128., 354032., 356936., 359840., 363488., 366400., 369312., 372224.,
      329192., 332112., 335032., 337952., 341552., 344480., 347408., 350336.,
      353976., 356912., 359848., 362784., 366464., 369408., 372352., 375296.,
      172590., 174444., 176298., 178152., 180468., 182328., 184188., 186048.,
      188394., 190260., 192126., 193992., 196368., 198240., 200112., 201984.,
      235257., 238002., 240747., 243492., 246858., 249612., 252366., 255120.,
      258531., 261294., 264057., 266820., 270276., 273048., 275820., 278592.,
      237597., 240378., 243159., 245940., 249342., 252132., 254922., 257712.,
      261159., 263958., 266757., 269556., 273048., 275856., 278664., 281472.,
      239937., 242754., 245571., 248388., 251826., 254652., 257478., 260304.,
      263787., 266622., 269457., 272292., 275820., 278664., 281508., 284352.,
      242277., 245130., 247983., 250836., 254310., 257172., 260034., 262896.,
      266415., 269286., 272157., 275028., 278592., 281472., 284352., 287232.,
      144294., 146172., 148050., 149928., 152172., 154056., 155940., 157824.,
      160098., 161988., 163878., 165768., 168072., 169968., 171864., 173760.,
      145662., 147564., 149466., 151368., 153636., 155544., 157452., 159360.,
      161658., 163572., 165486., 167400., 169728., 171648., 173568., 175488.,
      193614., 195756., 197898., 200040., 202644., 204792., 206940., 209088.,
      211722., 213876., 216030., 218184., 220848., 223008., 225168., 227328.,
      263337., 266514., 269691., 272868., 276666., 279852., 283038., 286224.,
      290067., 293262., 296457., 299652., 303540., 306744., 309948., 313152.,
      265677., 268890., 272103., 275316., 279150., 282372., 285594., 288816.,
      292695., 295926., 299157., 302388., 306312., 309552., 312792., 316032.,
      268017., 271266., 274515., 277764., 281634., 284892., 288150., 291408.,
      295323., 298590., 301857., 305124., 309084., 312360., 315636., 318912.,
      270357., 273642., 276927., 280212., 284118., 287412., 290706., 294000.,
      297951., 301254., 304557., 307860., 311856., 315168., 318480., 321792.,
      160710., 162876., 165042., 167208., 169740., 171912., 174084., 176256.,
      178818., 180996., 183174., 185352., 187944., 190128., 192312., 194496.,
      162078., 164268., 166458., 168648., 171204., 173400., 175596., 177792.,
      180378., 182580., 184782., 186984., 189600., 191808., 194016., 196224.,
      214638., 217068., 219498., 221928., 224820., 227256., 229692., 232128.,
      235050., 237492., 239934., 242376., 245328., 247776., 250224., 252672.,
      291417., 295026., 298635., 302244., 306474., 310092., 313710., 317328.,
      321603., 325230., 328857., 332484., 336804., 340440., 344076., 347712.,
      293757., 297402., 301047., 304692., 308958., 312612., 316266., 319920.,
      324231., 327894., 331557., 335220., 339576., 343248., 346920., 350592.,
      296097., 299778., 303459., 307140., 311442., 315132., 318822., 322512.,
      326859., 330558., 334257., 337956., 342348., 346056., 349764., 353472.,
      298437., 302154., 305871., 309588., 313926., 317652., 321378., 325104.,
      329487., 333222., 336957., 340692., 345120., 348864., 352608., 356352.,
      177126., 179580., 182034., 184488., 187308., 189768., 192228., 194688.,
      197538., 200004., 202470., 204936., 207816., 210288., 212760., 215232.,
      178494., 180972., 183450., 185928., 188772., 191256., 193740., 196224.,
      199098., 201588., 204078., 206568., 209472., 211968., 214464., 216960.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      16900., 17320., 17740., 18160., 18696., 19120., 19544., 19968., 20524.,
      20952., 21380., 21808., 22384., 22816., 23248., 23680., 17300., 17736.,
      18172., 18608., 19160., 19600., 20040., 20480., 21052., 21496., 21940.,
      22384., 22976., 23424., 23872., 24320., 17700., 18152., 18604., 19056.,
      19624., 20080., 20536., 20992., 21580., 22040., 22500., 22960., 23568.,
      24032., 24496., 24960., 18100., 18568., 19036., 19504., 20088., 20560.,
      21032., 21504., 22108., 22584., 23060., 23536., 24160., 24640., 25120.,
      25600., 18500., 18984., 19468., 19952., 20552., 21040., 21528., 22016.,
      22636., 23128., 23620., 24112., 24752., 25248., 25744., 26240., 18900.,
      19400., 19900., 20400., 21016., 21520., 22024., 22528., 23164., 23672.,
      24180., 24688., 25344., 25856., 26368., 26880., 19300., 19816., 20332.,
      20848., 21480., 22000., 22520., 23040., 23692., 24216., 24740., 25264.,
      25936., 26464., 26992., 27520., 21700., 22312., 22924., 23536., 24264.,
      24880., 25496., 26112., 26860., 27480., 28100., 28720., 29488., 30112.,
      30736., 31360., 22100., 22728., 23356., 23984., 24728., 25360., 25992.,
      26624., 27388., 28024., 28660., 29296., 30080., 30720., 31360., 32000.,
      22500., 23144., 23788., 24432., 25192., 25840., 26488., 27136., 27916.,
      28568., 29220., 29872., 30672., 31328., 31984., 32640., 22900., 23560.,
      24220., 24880., 25656., 26320., 26984., 27648., 28444., 29112., 29780.,
      30448., 31264., 31936., 32608., 33280., 23300., 23976., 24652., 25328.,
      26120., 26800., 27480., 28160., 28972., 29656., 30340., 31024., 31856.,
      32544., 33232., 33920., 23700., 24392., 25084., 25776., 26584., 27280.,
      27976., 28672., 29500., 30200., 30900., 31600., 32448., 33152., 33856.,
      34560., 24100., 24808., 25516., 26224., 27048., 27760., 28472., 29184.,
      30028., 30744., 31460., 32176., 33040., 33760., 34480., 35200., 26500.,
      27304., 28108., 28912., 29832., 30640., 31448., 32256., 33196., 34008.,
      34820., 35632., 36592., 37408., 38224., 39040., 26900., 27720., 28540.,
      29360., 30296., 31120., 31944., 32768., 33724., 34552., 35380., 36208.,
      37184., 38016., 38848., 39680., 27300., 28136., 28972., 29808., 30760.,
      31600., 32440., 33280., 34252., 35096., 35940., 36784., 37776., 38624.,
      39472., 40320., 27700., 28552., 29404., 30256., 31224., 32080., 32936.,
      33792., 34780., 35640., 36500., 37360., 38368., 39232., 40096., 40960.,
      28100., 28968., 29836., 30704., 31688., 32560., 33432., 34304., 35308.,
      36184., 37060., 37936., 38960., 39840., 40720., 41600., 28500., 29384.,
      30268., 31152., 32152., 33040., 33928., 34816., 35836., 36728., 37620.,
      38512., 39552., 40448., 41344., 42240., 28900., 29800., 30700., 31600.,
      32616., 33520., 34424., 35328., 36364., 37272., 38180., 39088., 40144.,
      41056., 41968., 42880., 31300., 32296., 33292., 34288., 35400., 36400.,
      37400., 38400., 39532., 40536., 41540., 42544., 43696., 44704., 45712.,
      46720., 31700., 32712., 33724., 34736., 35864., 36880., 37896., 38912.,
      40060., 41080., 42100., 43120., 44288., 45312., 46336., 47360., 32100.,
      33128., 34156., 35184., 36328., 37360., 38392., 39424., 40588., 41624.,
      42660., 43696., 44880., 45920., 46960., 48000., 32500., 33544., 34588.,
      35632., 36792., 37840., 38888., 39936., 41116., 42168., 43220., 44272.,
      45472., 46528., 47584., 48640., 32900., 33960., 35020., 36080., 37256.,
      38320., 39384., 40448., 41644., 42712., 43780., 44848., 46064., 47136.,
      48208., 49280., 33300., 34376., 35452., 36528., 37720., 38800., 39880.,
      40960., 42172., 43256., 44340., 45424., 46656., 47744., 48832., 49920.,
      33700., 34792., 35884., 36976., 38184., 39280., 40376., 41472., 42700.,
      43800., 44900., 46000., 47248., 48352., 49456., 50560., 36100., 37288.,
      38476., 39664., 40968., 42160., 43352., 44544., 45868., 47064., 48260.,
      49456., 50800., 52000., 53200., 54400., 36500., 37704., 38908., 40112.,
      41432., 42640., 43848., 45056., 46396., 47608., 48820., 50032., 51392.,
      52608., 53824., 55040., 36900., 38120., 39340., 40560., 41896., 43120.,
      44344., 45568., 46924., 48152., 49380., 50608., 51984., 53216., 54448.,
      55680., 37300., 38536., 39772., 41008., 42360., 43600., 44840., 46080.,
      47452., 48696., 49940., 51184., 52576., 53824., 55072., 56320., 37700.,
      38952., 40204., 41456., 42824., 44080., 45336., 46592., 47980., 49240.,
      50500., 51760., 53168., 54432., 55696., 56960., 38100., 39368., 40636.,
      41904., 43288., 44560., 45832., 47104., 48508., 49784., 51060., 52336.,
      53760., 55040., 56320., 57600., 38500., 39784., 41068., 42352., 43752.,
      45040., 46328., 47616., 49036., 50328., 51620., 52912., 54352., 55648.,
      56944., 58240., 40900., 42280., 43660., 45040., 46536., 47920., 49304.,
      50688., 52204., 53592., 54980., 56368., 57904., 59296., 60688., 62080.,
      41300., 42696., 44092., 45488., 47000., 48400., 49800., 51200., 52732.,
      54136., 55540., 56944., 58496., 59904., 61312., 62720., 41700., 43112.,
      44524., 45936., 47464., 48880., 50296., 51712., 53260., 54680., 56100.,
      57520., 59088., 60512., 61936., 63360., 42100., 43528., 44956., 46384.,
      47928., 49360., 50792., 52224., 53788., 55224., 56660., 58096., 59680.,
      61120., 62560., 64000., 42500., 43944., 45388., 46832., 48392., 49840.,
      51288., 52736., 54316., 55768., 57220., 58672., 60272., 61728., 63184.,
      64640., 42900., 44360., 45820., 47280., 48856., 50320., 51784., 53248.,
      54844., 56312., 57780., 59248., 60864., 62336., 63808., 65280., 43300.,
      44776., 46252., 47728., 49320., 50800., 52280., 53760., 55372., 56856.,
      58340., 59824., 61456., 62944., 64432., 65920., 45700., 47272., 48844.,
      50416., 52104., 53680., 55256., 56832., 58540., 60120., 61700., 63280.,
      65008., 66592., 68176., 69760., 46100., 47688., 49276., 50864., 52568.,
      54160., 55752., 57344., 59068., 60664., 62260., 63856., 65600., 67200.,
      68800., 70400., 46500., 48104., 49708., 51312., 53032., 54640., 56248.,
      57856., 59596., 61208., 62820., 64432., 66192., 67808., 69424., 71040.,
      46900., 48520., 50140., 51760., 53496., 55120., 56744., 58368., 60124.,
      61752., 63380., 65008., 66784., 68416., 70048., 71680., 47300., 48936.,
      50572., 52208., 53960., 55600., 57240., 58880., 60652., 62296., 63940.,
      65584., 67376., 69024., 70672., 72320., 47700., 49352., 51004., 52656.,
      54424., 56080., 57736., 59392., 61180., 62840., 64500., 66160., 67968.,
      69632., 71296., 72960., 48100., 49768., 51436., 53104., 54888., 56560.,
      58232., 59904., 61708., 63384., 65060., 66736., 68560., 70240., 71920.,
      73600.};
  const std::array<int, 4> in_shape = {{1, 14, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10377., 10476., 13318., 13444., 9558.,  9648.,  9738.,  11763., 11862.,
      15082., 15208., 10818., 10908., 10998., 13220., 13328., 16936., 17072.,
      12128., 12224., 12320., 14732., 14840., 18840., 18976., 13472., 13568.,
      13664., 7101.,  7164.,  8950.,  9028.,  6282.,  6336.,  6390.,  7983.,
      8046.,  10042., 10120., 7038.,  7092.,  7146.,  8865.,  8928.,  11134.,
      11212., 7794.,  7848.,  7902.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      426.,  436.,  446.,  456.,  466.,  476.,  486.,  566.,  576.,  586.,
      596.,  606.,  616.,  626.,  706.,  716.,  726.,  736.,  746.,  756.,
      766.,  846.,  856.,  866.,  876.,  886.,  896.,  906.,  986.,  996.,
      1006., 1016., 1026., 1036., 1046., 1126., 1136., 1146., 1156., 1166.,
      1176., 1186., 1266., 1276., 1286., 1296., 1306., 1316., 1326.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19935., 20754., 20124., 20952., 25544., 26636., 25784., 26888., 18297.,
      19116., 18468., 19296., 18639., 19476., 22581., 23526., 22770., 23724.,
      28904., 30164., 29144., 30416., 20691., 21636., 20862., 21816., 21033.,
      21996., 25348., 26440., 25552., 26656., 32416., 33872., 32672., 34144.,
      23164., 24256., 23344., 24448., 23524., 24640., 28204., 29464., 28408.,
      29680., 36000., 37680., 36256., 37952., 25684., 26944., 25864., 27136.,
      26044., 27328., 13383., 14202., 13500., 14328., 16808., 17900., 16952.,
      18056., 11745., 12564., 11844., 12672., 11943., 12780., 15021., 15966.,
      15138., 16092., 18824., 20084., 18968., 20240., 13131., 14076., 13230.,
      14184., 13329., 14292., 16659., 17730., 16776., 17856., 20840., 22268.,
      20984., 22424., 14517., 15588., 14616., 15696., 14715., 15804.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      728.,  852.,  744.,  872.,  760.,  892.,  776.,  912.,  792.,  932.,
      808.,  952.,  824.,  972.,  952.,  1132., 968.,  1152., 984.,  1172.,
      1000., 1192., 1016., 1212., 1032., 1232., 1048., 1252., 1176., 1412.,
      1192., 1432., 1208., 1452., 1224., 1472., 1240., 1492., 1256., 1512.,
      1272., 1532., 1400., 1692., 1416., 1712., 1432., 1732., 1448., 1752.,
      1464., 1772., 1480., 1792., 1496., 1812., 1624., 1972., 1640., 1992.,
      1656., 2012., 1672., 2032., 1688., 2052., 1704., 2072., 1720., 2092.,
      1848., 2252., 1864., 2272., 1880., 2292., 1896., 2312., 1912., 2332.,
      1928., 2352., 1944., 2372., 2072., 2532., 2088., 2552., 2104., 2572.,
      2120., 2592., 2136., 2612., 2152., 2632., 2168., 2652.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      39051., 39870., 40689., 41508., 39420., 40248., 41076., 41904., 49996.,
      51088., 52180., 53272., 50464., 51568., 52672., 53776., 35775., 36594.,
      37413., 38232., 36108., 36936., 37764., 38592., 36441., 37278., 38115.,
      38952., 44217., 45162., 46107., 47052., 44586., 45540., 46494., 47448.,
      56548., 57808., 59068., 60328., 57016., 58288., 59560., 60832., 40437.,
      41382., 42327., 43272., 40770., 41724., 42678., 43632., 41103., 42066.,
      43029., 43992., 49604., 50696., 51788., 52880., 50000., 51104., 52208.,
      53312., 63376., 64832., 66288., 67744., 63872., 65344., 66816., 68288.,
      45236., 46328., 47420., 48512., 45584., 46688., 47792., 48896., 45932.,
      47048., 48164., 49280., 55148., 56408., 57668., 58928., 55544., 56816.,
      58088., 59360., 70320., 72000., 73680., 75360., 70816., 72512., 74208.,
      75904., 50108., 51368., 52628., 53888., 50456., 51728., 53000., 54272.,
      50804., 52088., 53372., 54656., 25947., 26766., 27585., 28404., 26172.,
      27000., 27828., 28656., 32524., 33616., 34708., 35800., 32800., 33904.,
      35008., 36112., 22671., 23490., 24309., 25128., 22860., 23688., 24516.,
      25344., 23049., 23886., 24723., 25560., 29097., 30042., 30987., 31932.,
      29322., 30276., 31230., 32184., 36388., 37648., 38908., 40168., 36664.,
      37936., 39208., 40480., 25317., 26262., 27207., 28152., 25506., 26460.,
      27414., 28368., 25695., 26658., 27621., 28584., 32247., 33318., 34389.,
      35460., 32472., 33552., 34632., 35712., 40252., 41680., 43108., 44536.,
      40528., 41968., 43408., 44848., 27963., 29034., 30105., 31176., 28152.,
      29232., 30312., 31392., 28341., 29430., 30519., 31608.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1332., 1456., 1580., 1704., 1360., 1488., 1616., 1744., 1388., 1520.,
      1652., 1784., 1416., 1552., 1688., 1824., 1444., 1584., 1724., 1864.,
      1472., 1616., 1760., 1904., 1500., 1648., 1796., 1944., 1724., 1904.,
      2084., 2264., 1752., 1936., 2120., 2304., 1780., 1968., 2156., 2344.,
      1808., 2000., 2192., 2384., 1836., 2032., 2228., 2424., 1864., 2064.,
      2264., 2464., 1892., 2096., 2300., 2504., 2116., 2352., 2588., 2824.,
      2144., 2384., 2624., 2864., 2172., 2416., 2660., 2904., 2200., 2448.,
      2696., 2944., 2228., 2480., 2732., 2984., 2256., 2512., 2768., 3024.,
      2284., 2544., 2804., 3064., 2508., 2800., 3092., 3384., 2536., 2832.,
      3128., 3424., 2564., 2864., 3164., 3464., 2592., 2896., 3200., 3504.,
      2620., 2928., 3236., 3544., 2648., 2960., 3272., 3584., 2676., 2992.,
      3308., 3624., 2900., 3248., 3596., 3944., 2928., 3280., 3632., 3984.,
      2956., 3312., 3668., 4024., 2984., 3344., 3704., 4064., 3012., 3376.,
      3740., 4104., 3040., 3408., 3776., 4144., 3068., 3440., 3812., 4184.,
      3292., 3696., 4100., 4504., 3320., 3728., 4136., 4544., 3348., 3760.,
      4172., 4584., 3376., 3792., 4208., 4624., 3404., 3824., 4244., 4664.,
      3432., 3856., 4280., 4704., 3460., 3888., 4316., 4744., 3684., 4144.,
      4604., 5064., 3712., 4176., 4640., 5104., 3740., 4208., 4676., 5144.,
      3768., 4240., 4712., 5184., 3796., 4272., 4748., 5224., 3824., 4304.,
      4784., 5264., 3852., 4336., 4820., 5304.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      39681., 41508., 40059., 41904., 50848., 53272., 51328., 53776., 36423.,
      38232., 36765., 38592., 37107., 38952., 44973., 47052., 45351., 47448.,
      57568., 60328., 58048., 60832., 41211., 43272., 41553., 43632., 41895.,
      43992., 50492., 52880., 50900., 53312., 64576., 67744., 65088., 68288.,
      46148., 48512., 46508., 48896., 46868., 49280., 56204., 58928., 56612.,
      59360., 71744., 75360., 72256., 75904., 51188., 53888., 51548., 54272.,
      51908., 54656., 26649., 28404., 26883., 28656., 33472., 35800., 33760.,
      36112., 23391., 25128., 23589., 25344., 23787., 25560., 29925., 31932.,
      30159., 32184., 37504., 40168., 37792., 40480., 26163., 28152., 26361.,
      28368., 26559., 28584., 33201., 35460., 33435., 35712., 41536., 44536.,
      41824., 44848., 28935., 31176., 29133., 31392., 29331., 31608.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1440., 1704., 1472., 1744., 1504., 1784., 1536., 1824., 1568., 1864.,
      1600., 1904., 1632., 1944., 1888., 2264., 1920., 2304., 1952., 2344.,
      1984., 2384., 2016., 2424., 2048., 2464., 2080., 2504., 2336., 2824.,
      2368., 2864., 2400., 2904., 2432., 2944., 2464., 2984., 2496., 3024.,
      2528., 3064., 2784., 3384., 2816., 3424., 2848., 3464., 2880., 3504.,
      2912., 3544., 2944., 3584., 2976., 3624., 3232., 3944., 3264., 3984.,
      3296., 4024., 3328., 4064., 3360., 4104., 3392., 4144., 3424., 4184.,
      3680., 4504., 3712., 4544., 3744., 4584., 3776., 4624., 3808., 4664.,
      3840., 4704., 3872., 4744., 4128., 5064., 4160., 5104., 4192., 5144.,
      4224., 5184., 4256., 5224., 4288., 5264., 4320., 5304.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      77733.,  79362.,  81378.,  83016.,  78471.,  80118.,  82152.,  83808.,
      99524.,  101696., 104360., 106544., 100460., 102656., 105344., 107552.,
      71217.,  72846.,  74826.,  76464.,  71883.,  73530.,  75528.,  77184.,
      72549.,  74214.,  76230.,  77904.,  88065.,  89946.,  92214.,  94104.,
      88803.,  90702.,  92988.,  94896.,  112628., 115136., 118136., 120656.,
      113564., 116096., 119120., 121664., 80541.,  82422.,  84654.,  86544.,
      81207.,  83106.,  85356.,  87264.,  81873.,  83790.,  86058.,  87984.,
      98812.,  100984., 103576., 105760., 99604.,  101800., 104416., 106624.,
      126256., 129152., 132576., 135488., 127248., 130176., 133632., 136576.,
      90124.,  92296.,  94840.,  97024.,  90820.,  93016.,  95584.,  97792.,
      91516.,  93736.,  96328.,  98560.,  109900., 112408., 115336., 117856.,
      110692., 113224., 116176., 118720., 140144., 143488., 147360., 150720.,
      141136., 144512., 148416., 151808., 99868.,  102376., 105256., 107776.,
      100564., 103096., 106000., 108544., 101260., 103816., 106744., 109312.,
      51669.,  53298.,  55170.,  56808.,  52119.,  53766.,  55656.,  57312.,
      64772.,  66944.,  69416.,  71600.,  65324.,  67520.,  70016.,  72224.,
      45153.,  46782.,  48618.,  50256.,  45531.,  47178.,  49032.,  50688.,
      45909.,  47574.,  49446.,  51120.,  57969.,  59850.,  61974.,  63864.,
      58419.,  60318.,  62460.,  64368.,  72500.,  75008.,  77816.,  80336.,
      73052.,  75584.,  78416.,  80960.,  50445.,  52326.,  54414.,  56304.,
      50823.,  52722.,  54828.,  56736.,  51201.,  53118.,  55242.,  57168.,
      64269.,  66402.,  68778.,  70920.,  64719.,  66870.,  69264.,  71424.,
      80228.,  83072.,  86216.,  89072.,  80780.,  83648.,  86816.,  89696.,
      55737.,  57870.,  60210.,  62352.,  56115.,  58266.,  60624.,  62784.,
      56493.,  58662.,  61038.,  63216.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2636., 2880.,  3160., 3408.,  2692., 2944.,  3232., 3488.,  2748., 3008.,
      3304., 3568.,  2804., 3072.,  3376., 3648.,  2860., 3136.,  3448., 3728.,
      2916., 3200.,  3520., 3808.,  2972., 3264.,  3592., 3888.,  3420., 3776.,
      4168., 4528.,  3476., 3840.,  4240., 4608.,  3532., 3904.,  4312., 4688.,
      3588., 3968.,  4384., 4768.,  3644., 4032.,  4456., 4848.,  3700., 4096.,
      4528., 4928.,  3756., 4160.,  4600., 5008.,  4204., 4672.,  5176., 5648.,
      4260., 4736.,  5248., 5728.,  4316., 4800.,  5320., 5808.,  4372., 4864.,
      5392., 5888.,  4428., 4928.,  5464., 5968.,  4484., 4992.,  5536., 6048.,
      4540., 5056.,  5608., 6128.,  4988., 5568.,  6184., 6768.,  5044., 5632.,
      6256., 6848.,  5100., 5696.,  6328., 6928.,  5156., 5760.,  6400., 7008.,
      5212., 5824.,  6472., 7088.,  5268., 5888.,  6544., 7168.,  5324., 5952.,
      6616., 7248.,  5772., 6464.,  7192., 7888.,  5828., 6528.,  7264., 7968.,
      5884., 6592.,  7336., 8048.,  5940., 6656.,  7408., 8128.,  5996., 6720.,
      7480., 8208.,  6052., 6784.,  7552., 8288.,  6108., 6848.,  7624., 8368.,
      6556., 7360.,  8200., 9008.,  6612., 7424.,  8272., 9088.,  6668., 7488.,
      8344., 9168.,  6724., 7552.,  8416., 9248.,  6780., 7616.,  8488., 9328.,
      6836., 7680.,  8560., 9408.,  6892., 7744.,  8632., 9488.,  7340., 8256.,
      9208., 10128., 7396., 8320.,  9280., 10208., 7452., 8384.,  9352., 10288.,
      7508., 8448.,  9424., 10368., 7564., 8512.,  9496., 10448., 7620., 8576.,
      9568., 10528., 7676., 8640.,  9640., 10608.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      153837., 155466., 157095., 158724., 161118., 162756., 164394., 166032.,
      155295., 156942., 158589., 160236., 162648., 164304., 165960., 167616.,
      196876., 199048., 201220., 203392., 206536., 208720., 210904., 213088.,
      198724., 200920., 203116., 205312., 208480., 210688., 212896., 215104.,
      140805., 142434., 144063., 145692., 148014., 149652., 151290., 152928.,
      142119., 143766., 145413., 147060., 149400., 151056., 152712., 154368.,
      143433., 145098., 146763., 148428., 150786., 152460., 154134., 155808.,
      174249., 176130., 178011., 179892., 182538., 184428., 186318., 188208.,
      175707., 177606., 179505., 181404., 184068., 185976., 187884., 189792.,
      222748., 225256., 227764., 230272., 233752., 236272., 238792., 241312.,
      224596., 227128., 229660., 232192., 235696., 238240., 240784., 243328.,
      159201., 161082., 162963., 164844., 167418., 169308., 171198., 173088.,
      160515., 162414., 164313., 166212., 168804., 170712., 172620., 174528.,
      161829., 163746., 165663., 167580., 170190., 172116., 174042., 175968.,
      195452., 197624., 199796., 201968., 204968., 207152., 209336., 211520.,
      197012., 199208., 201404., 203600., 206624., 208832., 211040., 213248.,
      249616., 252512., 255408., 258304., 262240., 265152., 268064., 270976.,
      251568., 254496., 257424., 260352., 264320., 267264., 270208., 273152.,
      178076., 180248., 182420., 184592., 187496., 189680., 191864., 194048.,
      179444., 181640., 183836., 186032., 188960., 191168., 193376., 195584.,
      180812., 183032., 185252., 187472., 190424., 192656., 194888., 197120.,
      217292., 219800., 222308., 224816., 228152., 230672., 233192., 235712.,
      218852., 221384., 223916., 226448., 229808., 232352., 234896., 237440.,
      276944., 280288., 283632., 286976., 291360., 294720., 298080., 301440.,
      278896., 282272., 285648., 289024., 293440., 296832., 300224., 303616.,
      197228., 199736., 202244., 204752., 207992., 210512., 213032., 215552.,
      198596., 201128., 203660., 206192., 209456., 212000., 214544., 217088.,
      199964., 202520., 205076., 207632., 210920., 213488., 216056., 218624.,
      101709., 103338., 104967., 106596., 108702., 110340., 111978., 113616.,
      102591., 104238., 105885., 107532., 109656., 111312., 112968., 114624.,
      127372., 129544., 131716., 133888., 136648., 138832., 141016., 143200.,
      128452., 130648., 132844., 135040., 137824., 140032., 142240., 144448.,
      88677.,  90306.,  91935.,  93564.,  95598.,  97236.,  98874.,  100512.,
      89415.,  91062.,  92709.,  94356.,  96408.,  98064.,  99720.,  101376.,
      90153.,  91818.,  93483.,  95148.,  97218.,  98892.,  100566., 102240.,
      114057., 115938., 117819., 119700., 122058., 123948., 125838., 127728.,
      114939., 116838., 118737., 120636., 123012., 124920., 126828., 128736.,
      142492., 145000., 147508., 150016., 153112., 155632., 158152., 160672.,
      143572., 146104., 148636., 151168., 154288., 156832., 159376., 161920.,
      99009.,  100890., 102771., 104652., 106938., 108828., 110718., 112608.,
      99747.,  101646., 103545., 105444., 107748., 109656., 111564., 113472.,
      100485., 102402., 104319., 106236., 108558., 110484., 112410., 114336.,
      126405., 128538., 130671., 132804., 135414., 137556., 139698., 141840.,
      127287., 129438., 131589., 133740., 136368., 138528., 140688., 142848.,
      157612., 160456., 163300., 166144., 169576., 172432., 175288., 178144.,
      158692., 161560., 164428., 167296., 170752., 173632., 176512., 179392.,
      109341., 111474., 113607., 115740., 118278., 120420., 122562., 124704.,
      110079., 112230., 114381., 116532., 119088., 121248., 123408., 125568.,
      110817., 112986., 115155., 117324., 119898., 122076., 124254., 126432.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5028.,  5272.,  5516.,  5760.,  6072.,  6320.,  6568.,  6816.,  5132.,
      5384.,  5636.,  5888.,  6208.,  6464.,  6720.,  6976.,  5236.,  5496.,
      5756.,  6016.,  6344.,  6608.,  6872.,  7136.,  5340.,  5608.,  5876.,
      6144.,  6480.,  6752.,  7024.,  7296.,  5444.,  5720.,  5996.,  6272.,
      6616.,  6896.,  7176.,  7456.,  5548.,  5832.,  6116.,  6400.,  6752.,
      7040.,  7328.,  7616.,  5652.,  5944.,  6236.,  6528.,  6888.,  7184.,
      7480.,  7776.,  6484.,  6840.,  7196.,  7552.,  7976.,  8336.,  8696.,
      9056.,  6588.,  6952.,  7316.,  7680.,  8112.,  8480.,  8848.,  9216.,
      6692.,  7064.,  7436.,  7808.,  8248.,  8624.,  9000.,  9376.,  6796.,
      7176.,  7556.,  7936.,  8384.,  8768.,  9152.,  9536.,  6900.,  7288.,
      7676.,  8064.,  8520.,  8912.,  9304.,  9696.,  7004.,  7400.,  7796.,
      8192.,  8656.,  9056.,  9456.,  9856.,  7108.,  7512.,  7916.,  8320.,
      8792.,  9200.,  9608.,  10016., 7940.,  8408.,  8876.,  9344.,  9880.,
      10352., 10824., 11296., 8044.,  8520.,  8996.,  9472.,  10016., 10496.,
      10976., 11456., 8148.,  8632.,  9116.,  9600.,  10152., 10640., 11128.,
      11616., 8252.,  8744.,  9236.,  9728.,  10288., 10784., 11280., 11776.,
      8356.,  8856.,  9356.,  9856.,  10424., 10928., 11432., 11936., 8460.,
      8968.,  9476.,  9984.,  10560., 11072., 11584., 12096., 8564.,  9080.,
      9596.,  10112., 10696., 11216., 11736., 12256., 9396.,  9976.,  10556.,
      11136., 11784., 12368., 12952., 13536., 9500.,  10088., 10676., 11264.,
      11920., 12512., 13104., 13696., 9604.,  10200., 10796., 11392., 12056.,
      12656., 13256., 13856., 9708.,  10312., 10916., 11520., 12192., 12800.,
      13408., 14016., 9812.,  10424., 11036., 11648., 12328., 12944., 13560.,
      14176., 9916.,  10536., 11156., 11776., 12464., 13088., 13712., 14336.,
      10020., 10648., 11276., 11904., 12600., 13232., 13864., 14496., 10852.,
      11544., 12236., 12928., 13688., 14384., 15080., 15776., 10956., 11656.,
      12356., 13056., 13824., 14528., 15232., 15936., 11060., 11768., 12476.,
      13184., 13960., 14672., 15384., 16096., 11164., 11880., 12596., 13312.,
      14096., 14816., 15536., 16256., 11268., 11992., 12716., 13440., 14232.,
      14960., 15688., 16416., 11372., 12104., 12836., 13568., 14368., 15104.,
      15840., 16576., 11476., 12216., 12956., 13696., 14504., 15248., 15992.,
      16736., 12308., 13112., 13916., 14720., 15592., 16400., 17208., 18016.,
      12412., 13224., 14036., 14848., 15728., 16544., 17360., 18176., 12516.,
      13336., 14156., 14976., 15864., 16688., 17512., 18336., 12620., 13448.,
      14276., 15104., 16000., 16832., 17664., 18496., 12724., 13560., 14396.,
      15232., 16136., 16976., 17816., 18656., 12828., 13672., 14516., 15360.,
      16272., 17120., 17968., 18816., 12932., 13784., 14636., 15488., 16408.,
      17264., 18120., 18976., 13764., 14680., 15596., 16512., 17496., 18416.,
      19336., 20256., 13868., 14792., 15716., 16640., 17632., 18560., 19488.,
      20416., 13972., 14904., 15836., 16768., 17768., 18704., 19640., 20576.,
      14076., 15016., 15956., 16896., 17904., 18848., 19792., 20736., 14180.,
      15128., 16076., 17024., 18040., 18992., 19944., 20896., 14284., 15240.,
      16196., 17152., 18176., 19136., 20096., 21056., 14388., 15352., 16316.,
      17280., 18312., 19280., 20248., 21216.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      155097., 158724., 162369., 166032., 156573., 160236., 163917., 167616.,
      198580., 203392., 208228., 213088., 200452., 205312., 210196., 215104.,
      142101., 145692., 149301., 152928., 143433., 147060., 150705., 154368.,
      144765., 148428., 152109., 155808., 175761., 179892., 184041., 188208.,
      177237., 181404., 185589., 189792., 224788., 230272., 235780., 241312.,
      226660., 232192., 237748., 243328., 160749., 164844., 168957., 173088.,
      162081., 166212., 170361., 174528., 163413., 167580., 171765., 175968.,
      197228., 201968., 206732., 211520., 198812., 203600., 208412., 213248.,
      252016., 258304., 264624., 270976., 254000., 260352., 266736., 273152.,
      179900., 184592., 189308., 194048., 181292., 186032., 190796., 195584.,
      182684., 187472., 192284., 197120., 219404., 224816., 230252., 235712.,
      220988., 226448., 231932., 237440., 279792., 286976., 294192., 301440.,
      281776., 289024., 296304., 303616., 199388., 204752., 210140., 215552.,
      200780., 206192., 211628., 217088., 202172., 207632., 213116., 218624.,
      103113., 106596., 110097., 113616., 104013., 107532., 111069., 114624.,
      129268., 133888., 138532., 143200., 130372., 135040., 139732., 144448.,
      90117.,  93564.,  97029.,  100512., 90873.,  94356.,  97857.,  101376.,
      91629.,  95148.,  98685.,  102240., 115713., 119700., 123705., 127728.,
      116613., 120636., 124677., 128736., 144724., 150016., 155332., 160672.,
      145828., 151168., 156532., 161920., 100701., 104652., 108621., 112608.,
      101457., 105444., 109449., 113472., 102213., 106236., 110277., 114336.,
      128313., 132804., 137313., 141840., 129213., 133740., 138285., 142848.,
      160180., 166144., 172132., 178144., 161284., 167296., 173332., 179392.,
      111285., 115740., 120213., 124704., 112041., 116532., 121041., 125568.,
      112797., 117324., 121869., 126432.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5244.,  5760.,  6284.,  6816.,  5356.,  5888.,  6428.,  6976.,  5468.,
      6016.,  6572.,  7136.,  5580.,  6144.,  6716.,  7296.,  5692.,  6272.,
      6860.,  7456.,  5804.,  6400.,  7004.,  7616.,  5916.,  6528.,  7148.,
      7776.,  6812.,  7552.,  8300.,  9056.,  6924.,  7680.,  8444.,  9216.,
      7036.,  7808.,  8588.,  9376.,  7148.,  7936.,  8732.,  9536.,  7260.,
      8064.,  8876.,  9696.,  7372.,  8192.,  9020.,  9856.,  7484.,  8320.,
      9164.,  10016., 8380.,  9344.,  10316., 11296., 8492.,  9472.,  10460.,
      11456., 8604.,  9600.,  10604., 11616., 8716.,  9728.,  10748., 11776.,
      8828.,  9856.,  10892., 11936., 8940.,  9984.,  11036., 12096., 9052.,
      10112., 11180., 12256., 9948.,  11136., 12332., 13536., 10060., 11264.,
      12476., 13696., 10172., 11392., 12620., 13856., 10284., 11520., 12764.,
      14016., 10396., 11648., 12908., 14176., 10508., 11776., 13052., 14336.,
      10620., 11904., 13196., 14496., 11516., 12928., 14348., 15776., 11628.,
      13056., 14492., 15936., 11740., 13184., 14636., 16096., 11852., 13312.,
      14780., 16256., 11964., 13440., 14924., 16416., 12076., 13568., 15068.,
      16576., 12188., 13696., 15212., 16736., 13084., 14720., 16364., 18016.,
      13196., 14848., 16508., 18176., 13308., 14976., 16652., 18336., 13420.,
      15104., 16796., 18496., 13532., 15232., 16940., 18656., 13644., 15360.,
      17084., 18816., 13756., 15488., 17228., 18976., 14652., 16512., 18380.,
      20256., 14764., 16640., 18524., 20416., 14876., 16768., 18668., 20576.,
      14988., 16896., 18812., 20736., 15100., 17024., 18956., 20896., 15212.,
      17152., 19100., 21056., 15324., 17280., 19244., 21216.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      306945., 310194., 314190., 317448., 321471., 324738., 328788., 332064.,
      309861., 313146., 317178., 320472., 324531., 327834., 331920., 335232.,
      392828., 397160., 402440., 406784., 412100., 416456., 421808., 426176.,
      396524., 400904., 406232., 410624., 415988., 420392., 425792., 430208.,
      280953., 284202., 288126., 291384., 295335., 298602., 302580., 305856.,
      283581., 286866., 290826., 294120., 298107., 301410., 305424., 308736.,
      286209., 289530., 293526., 296856., 300879., 304218., 308268., 311616.,
      347769., 351522., 356022., 359784., 364311., 368082., 372636., 376416.,
      350685., 354474., 359010., 362808., 367371., 371178., 375768., 379584.,
      444572., 449576., 455528., 460544., 466532., 471560., 477584., 482624.,
      448268., 453320., 459320., 464384., 470420., 475496., 481568., 486656.,
      317745., 321498., 325926., 329688., 334143., 337914., 342396., 346176.,
      320373., 324162., 328626., 332424., 336915., 340722., 345240., 349056.,
      323001., 326826., 331326., 335160., 339687., 343530., 348084., 351936.,
      390124., 394456., 399592., 403936., 409108., 413464., 418672., 423040.,
      393244., 397624., 402808., 407200., 412420., 416824., 422080., 426496.,
      498256., 504032., 510816., 516608., 523440., 529248., 536128., 541952.,
      502160., 508000., 514848., 520704., 527600., 533472., 540416., 546304.,
      355468., 359800., 364840., 369184., 374260., 378616., 383728., 388096.,
      358204., 362584., 367672., 372064., 377188., 381592., 386752., 391168.,
      360940., 365368., 370504., 374944., 380116., 384568., 389776., 394240.,
      433804., 438808., 444616., 449632., 455476., 460504., 466384., 471424.,
      436924., 441976., 447832., 452896., 458788., 463864., 469792., 474880.,
      552912., 559584., 567264., 573952., 581680., 588384., 596160., 602880.,
      556816., 563552., 571296., 578048., 585840., 592608., 600448., 607232.,
      393772., 398776., 404488., 409504., 415252., 420280., 426064., 431104.,
      396508., 401560., 407320., 412384., 418180., 423256., 429088., 434176.,
      399244., 404344., 410152., 415264., 421108., 426232., 432112., 437248.,
      202977., 206226., 209934., 213192., 216927., 220194., 223956., 227232.,
      204741., 208026., 211770., 215064., 218835., 222138., 225936., 229248.,
      254204., 258536., 263432., 267776., 272708., 277064., 282032., 286400.,
      256364., 260744., 265688., 270080., 275060., 279464., 284480., 288896.,
      176985., 180234., 183870., 187128., 190791., 194058., 197748., 201024.,
      178461., 181746., 185418., 188712., 192411., 195714., 199440., 202752.,
      179937., 183258., 186966., 190296., 194031., 197370., 201132., 204480.,
      227673., 231426., 235638., 239400., 243639., 247410., 251676., 255456.,
      229437., 233226., 237474., 241272., 245547., 249354., 253656., 257472.,
      284444., 289448., 295016., 300032., 305636., 310664., 316304., 321344.,
      286604., 291656., 297272., 302336., 307988., 313064., 318752., 323840.,
      197649., 201402., 205542., 209304., 213471., 217242., 221436., 225216.,
      199125., 202914., 207090., 210888., 215091., 218898., 223128., 226944.,
      200601., 204426., 208638., 212472., 216711., 220554., 224820., 228672.,
      252369., 256626., 261342., 265608., 270351., 274626., 279396., 283680.,
      254133., 258426., 263178., 267480., 272259., 276570., 281376., 285696.,
      314684., 320360., 326600., 332288., 338564., 344264., 350576., 356288.,
      316844., 322568., 328856., 334592., 340916., 346664., 353024., 358784.,
      218313., 222570., 227214., 231480., 236151., 240426., 245124., 249408.,
      219789., 224082., 228762., 233064., 237771., 242082., 246816., 251136.,
      221265., 225594., 230310., 234648., 239391., 243738., 248508., 252864.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      10004., 10488., 11032., 11520., 12076., 12568., 13136., 13632., 10212.,
      10712., 11272., 11776., 12348., 12856., 13440., 13952., 10420., 10936.,
      11512., 12032., 12620., 13144., 13744., 14272., 10628., 11160., 11752.,
      12288., 12892., 13432., 14048., 14592., 10836., 11384., 11992., 12544.,
      13164., 13720., 14352., 14912., 11044., 11608., 12232., 12800., 13436.,
      14008., 14656., 15232., 11252., 11832., 12472., 13056., 13708., 14296.,
      14960., 15552., 12916., 13624., 14392., 15104., 15884., 16600., 17392.,
      18112., 13124., 13848., 14632., 15360., 16156., 16888., 17696., 18432.,
      13332., 14072., 14872., 15616., 16428., 17176., 18000., 18752., 13540.,
      14296., 15112., 15872., 16700., 17464., 18304., 19072., 13748., 14520.,
      15352., 16128., 16972., 17752., 18608., 19392., 13956., 14744., 15592.,
      16384., 17244., 18040., 18912., 19712., 14164., 14968., 15832., 16640.,
      17516., 18328., 19216., 20032., 15828., 16760., 17752., 18688., 19692.,
      20632., 21648., 22592., 16036., 16984., 17992., 18944., 19964., 20920.,
      21952., 22912., 16244., 17208., 18232., 19200., 20236., 21208., 22256.,
      23232., 16452., 17432., 18472., 19456., 20508., 21496., 22560., 23552.,
      16660., 17656., 18712., 19712., 20780., 21784., 22864., 23872., 16868.,
      17880., 18952., 19968., 21052., 22072., 23168., 24192., 17076., 18104.,
      19192., 20224., 21324., 22360., 23472., 24512., 18740., 19896., 21112.,
      22272., 23500., 24664., 25904., 27072., 18948., 20120., 21352., 22528.,
      23772., 24952., 26208., 27392., 19156., 20344., 21592., 22784., 24044.,
      25240., 26512., 27712., 19364., 20568., 21832., 23040., 24316., 25528.,
      26816., 28032., 19572., 20792., 22072., 23296., 24588., 25816., 27120.,
      28352., 19780., 21016., 22312., 23552., 24860., 26104., 27424., 28672.,
      19988., 21240., 22552., 23808., 25132., 26392., 27728., 28992., 21652.,
      23032., 24472., 25856., 27308., 28696., 30160., 31552., 21860., 23256.,
      24712., 26112., 27580., 28984., 30464., 31872., 22068., 23480., 24952.,
      26368., 27852., 29272., 30768., 32192., 22276., 23704., 25192., 26624.,
      28124., 29560., 31072., 32512., 22484., 23928., 25432., 26880., 28396.,
      29848., 31376., 32832., 22692., 24152., 25672., 27136., 28668., 30136.,
      31680., 33152., 22900., 24376., 25912., 27392., 28940., 30424., 31984.,
      33472., 24564., 26168., 27832., 29440., 31116., 32728., 34416., 36032.,
      24772., 26392., 28072., 29696., 31388., 33016., 34720., 36352., 24980.,
      26616., 28312., 29952., 31660., 33304., 35024., 36672., 25188., 26840.,
      28552., 30208., 31932., 33592., 35328., 36992., 25396., 27064., 28792.,
      30464., 32204., 33880., 35632., 37312., 25604., 27288., 29032., 30720.,
      32476., 34168., 35936., 37632., 25812., 27512., 29272., 30976., 32748.,
      34456., 36240., 37952., 27476., 29304., 31192., 33024., 34924., 36760.,
      38672., 40512., 27684., 29528., 31432., 33280., 35196., 37048., 38976.,
      40832., 27892., 29752., 31672., 33536., 35468., 37336., 39280., 41152.,
      28100., 29976., 31912., 33792., 35740., 37624., 39584., 41472., 28308.,
      30200., 32152., 34048., 36012., 37912., 39888., 41792., 28516., 30424.,
      32392., 34304., 36284., 38200., 40192., 42112., 28724., 30648., 32632.,
      34560., 36556., 38488., 40496., 42432.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME1x14x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      610641.,  613890.,  617139.,  620388.,  625122.,  628380.,  631638.,
      634896.,  639675.,  642942.,  646209.,  649476.,  654300.,  657576.,
      660852.,  664128.,  616437.,  619722.,  623007.,  626292.,  631062.,
      634356.,  637650.,  640944.,  645759.,  649062.,  652365.,  655668.,
      660528.,  663840.,  667152.,  670464.,  781324.,  785656.,  789988.,
      794320.,  800536.,  804880.,  809224.,  813568.,  819844.,  824200.,
      828556.,  832912.,  839248.,  843616.,  847984.,  852352.,  788668.,
      793048.,  797428.,  801808.,  808072.,  812464.,  816856.,  821248.,
      827572.,  831976.,  836380.,  840784.,  847168.,  851584.,  856000.,
      860416.,  558657.,  561906.,  565155.,  568404.,  572994.,  576252.,
      579510.,  582768.,  587403.,  590670.,  593937.,  597204.,  601884.,
      605160.,  608436.,  611712.,  563877.,  567162.,  570447.,  573732.,
      578358.,  581652.,  584946.,  588240.,  592911.,  596214.,  599517.,
      602820.,  607536.,  610848.,  614160.,  617472.,  569097.,  572418.,
      575739.,  579060.,  583722.,  587052.,  590382.,  593712.,  598419.,
      601758.,  605097.,  608436.,  613188.,  616536.,  619884.,  623232.,
      691785.,  695538.,  699291.,  703044.,  708282.,  712044.,  715806.,
      719568.,  724851.,  728622.,  732393.,  736164.,  741492.,  745272.,
      749052.,  752832.,  697581.,  701370.,  705159.,  708948.,  714222.,
      718020.,  721818.,  725616.,  730935.,  734742.,  738549.,  742356.,
      747720.,  751536.,  755352.,  759168.,  884140.,  889144.,  894148.,
      899152.,  906040.,  911056.,  916072.,  921088.,  928036.,  933064.,
      938092.,  943120.,  950128.,  955168.,  960208.,  965248.,  891484.,
      896536.,  901588.,  906640.,  913576.,  918640.,  923704.,  928768.,
      935764.,  940840.,  945916.,  950992.,  958048.,  963136.,  968224.,
      973312.,  631737.,  635490.,  639243.,  642996.,  648090.,  651852.,
      655614.,  659376.,  664515.,  668286.,  672057.,  675828.,  681012.,
      684792.,  688572.,  692352.,  636957.,  640746.,  644535.,  648324.,
      653454.,  657252.,  661050.,  664848.,  670023.,  673830.,  677637.,
      681444.,  686664.,  690480.,  694296.,  698112.,  642177.,  646002.,
      649827.,  653652.,  658818.,  662652.,  666486.,  670320.,  675531.,
      679374.,  683217.,  687060.,  692316.,  696168.,  700020.,  703872.,
      775916.,  780248.,  784580.,  788912.,  794840.,  799184.,  803528.,
      807872.,  813860.,  818216.,  822572.,  826928.,  832976.,  837344.,
      841712.,  846080.,  782108.,  786488.,  790868.,  795248.,  801224.,
      805616.,  810008.,  814400.,  820436.,  824840.,  829244.,  833648.,
      839744.,  844160.,  848576.,  852992.,  990736.,  996512.,  1002288.,
      1008064., 1015840., 1021632., 1027424., 1033216., 1041072., 1046880.,
      1052688., 1058496., 1066432., 1072256., 1078080., 1083904., 998480.,
      1004320., 1010160., 1016000., 1023840., 1029696., 1035552., 1041408.,
      1049328., 1055200., 1061072., 1066944., 1074944., 1080832., 1086720.,
      1092608., 706604.,  710936.,  715268.,  719600.,  725336.,  729680.,
      734024.,  738368.,  744164.,  748520.,  752876.,  757232.,  763088.,
      767456.,  771824.,  776192.,  712028.,  716408.,  720788.,  725168.,
      730952.,  735344.,  739736.,  744128.,  749972.,  754376.,  758780.,
      763184.,  769088.,  773504.,  777920.,  782336.,  717452.,  721880.,
      726308.,  730736.,  736568.,  741008.,  745448.,  749888.,  755780.,
      760232.,  764684.,  769136.,  775088.,  779552.,  784016.,  788480.,
      862604.,  867608.,  872612.,  877616.,  884216.,  889232.,  894248.,
      899264.,  905924.,  910952.,  915980.,  921008.,  927728.,  932768.,
      937808.,  942848.,  868796.,  873848.,  878900.,  883952.,  890600.,
      895664.,  900728.,  905792.,  912500.,  917576.,  922652.,  927728.,
      934496.,  939584.,  944672.,  949760.,  1099152., 1105824., 1112496.,
      1119168., 1127840., 1134528., 1141216., 1147904., 1156656., 1163360.,
      1170064., 1176768., 1185600., 1192320., 1199040., 1205760., 1106896.,
      1113632., 1120368., 1127104., 1135840., 1142592., 1149344., 1156096.,
      1164912., 1171680., 1178448., 1185216., 1194112., 1200896., 1207680.,
      1214464., 782540.,  787544.,  792548.,  797552.,  803960.,  808976.,
      813992.,  819008.,  825476.,  830504.,  835532.,  840560.,  847088.,
      852128.,  857168.,  862208.,  787964.,  793016.,  798068.,  803120.,
      809576.,  814640.,  819704.,  824768.,  831284.,  836360.,  841436.,
      846512.,  853088.,  858176.,  863264.,  868352.,  793388.,  798488.,
      803588.,  808688.,  815192.,  820304.,  825416.,  830528.,  837092.,
      842216.,  847340.,  852464.,  859088.,  864224.,  869360.,  874496.,
      402705.,  405954.,  409203.,  412452.,  416610.,  419868.,  423126.,
      426384.,  430587.,  433854.,  437121.,  440388.,  444636.,  447912.,
      451188.,  454464.,  406197.,  409482.,  412767.,  416052.,  420246.,
      423540.,  426834.,  430128.,  434367.,  437670.,  440973.,  444276.,
      448560.,  451872.,  455184.,  458496.,  504076.,  508408.,  512740.,
      517072.,  522520.,  526864.,  531208.,  535552.,  541060.,  545416.,
      549772.,  554128.,  559696.,  564064.,  568432.,  572800.,  508348.,
      512728.,  517108.,  521488.,  526984.,  531376.,  535768.,  540160.,
      545716.,  550120.,  554524.,  558928.,  564544.,  568960.,  573376.,
      577792.,  350721.,  353970.,  357219.,  360468.,  364482.,  367740.,
      370998.,  374256.,  378315.,  381582.,  384849.,  388116.,  392220.,
      395496.,  398772.,  402048.,  353637.,  356922.,  360207.,  363492.,
      367542.,  370836.,  374130.,  377424.,  381519.,  384822.,  388125.,
      391428.,  395568.,  398880.,  402192.,  405504.,  356553.,  359874.,
      363195.,  366516.,  370602.,  373932.,  377262.,  380592.,  384723.,
      388062.,  391401.,  394740.,  398916.,  402264.,  405612.,  408960.,
      451593.,  455346.,  459099.,  462852.,  467514.,  471276.,  475038.,
      478800.,  483507.,  487278.,  491049.,  494820.,  499572.,  503352.,
      507132.,  510912.,  455085.,  458874.,  462663.,  466452.,  471150.,
      474948.,  478746.,  482544.,  487287.,  491094.,  494901.,  498708.,
      503496.,  507312.,  511128.,  514944.,  563884.,  568888.,  573892.,
      578896.,  585016.,  590032.,  595048.,  600064.,  606244.,  611272.,
      616300.,  621328.,  627568.,  632608.,  637648.,  642688.,  568156.,
      573208.,  578260.,  583312.,  589480.,  594544.,  599608.,  604672.,
      610900.,  615976.,  621052.,  626128.,  632416.,  637504.,  642592.,
      647680.,  391545.,  395298.,  399051.,  402804.,  407322.,  411084.,
      414846.,  418608.,  423171.,  426942.,  430713.,  434484.,  439092.,
      442872.,  446652.,  450432.,  394461.,  398250.,  402039.,  405828.,
      410382.,  414180.,  417978.,  421776.,  426375.,  430182.,  433989.,
      437796.,  442440.,  446256.,  450072.,  453888.,  397377.,  401202.,
      405027.,  408852.,  413442.,  417276.,  421110.,  424944.,  429579.,
      433422.,  437265.,  441108.,  445788.,  449640.,  453492.,  457344.,
      500481.,  504738.,  508995.,  513252.,  518418.,  522684.,  526950.,
      531216.,  536427.,  540702.,  544977.,  549252.,  554508.,  558792.,
      563076.,  567360.,  503973.,  508266.,  512559.,  516852.,  522054.,
      526356.,  530658.,  534960.,  540207.,  544518.,  548829.,  553140.,
      558432.,  562752.,  567072.,  571392.,  623692.,  629368.,  635044.,
      640720.,  647512.,  653200.,  658888.,  664576.,  671428.,  677128.,
      682828.,  688528.,  695440.,  701152.,  706864.,  712576.,  627964.,
      633688.,  639412.,  645136.,  651976.,  657712.,  663448.,  669184.,
      676084.,  681832.,  687580.,  693328.,  700288.,  706048.,  711808.,
      717568.,  432369.,  436626.,  440883.,  445140.,  450162.,  454428.,
      458694.,  462960.,  468027.,  472302.,  476577.,  480852.,  485964.,
      490248.,  494532.,  498816.,  435285.,  439578.,  443871.,  448164.,
      453222.,  457524.,  461826.,  466128.,  471231.,  475542.,  479853.,
      484164.,  489312.,  493632.,  497952.,  502272.,  438201.,  442530.,
      446859.,  451188.,  456282.,  460620.,  464958.,  469296.,  474435.,
      478782.,  483129.,  487476.,  492660.,  497016.,  501372.,  505728.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID1x14x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19524., 20008., 20492., 20976., 21576., 22064., 22552., 23040., 23660.,
      24152., 24644., 25136., 25776., 26272., 26768., 27264., 19924., 20424.,
      20924., 21424., 22040., 22544., 23048., 23552., 24188., 24696., 25204.,
      25712., 26368., 26880., 27392., 27904., 20324., 20840., 21356., 21872.,
      22504., 23024., 23544., 24064., 24716., 25240., 25764., 26288., 26960.,
      27488., 28016., 28544., 20724., 21256., 21788., 22320., 22968., 23504.,
      24040., 24576., 25244., 25784., 26324., 26864., 27552., 28096., 28640.,
      29184., 21124., 21672., 22220., 22768., 23432., 23984., 24536., 25088.,
      25772., 26328., 26884., 27440., 28144., 28704., 29264., 29824., 21524.,
      22088., 22652., 23216., 23896., 24464., 25032., 25600., 26300., 26872.,
      27444., 28016., 28736., 29312., 29888., 30464., 21924., 22504., 23084.,
      23664., 24360., 24944., 25528., 26112., 26828., 27416., 28004., 28592.,
      29328., 29920., 30512., 31104., 25124., 25832., 26540., 27248., 28072.,
      28784., 29496., 30208., 31052., 31768., 32484., 33200., 34064., 34784.,
      35504., 36224., 25524., 26248., 26972., 27696., 28536., 29264., 29992.,
      30720., 31580., 32312., 33044., 33776., 34656., 35392., 36128., 36864.,
      25924., 26664., 27404., 28144., 29000., 29744., 30488., 31232., 32108.,
      32856., 33604., 34352., 35248., 36000., 36752., 37504., 26324., 27080.,
      27836., 28592., 29464., 30224., 30984., 31744., 32636., 33400., 34164.,
      34928., 35840., 36608., 37376., 38144., 26724., 27496., 28268., 29040.,
      29928., 30704., 31480., 32256., 33164., 33944., 34724., 35504., 36432.,
      37216., 38000., 38784., 27124., 27912., 28700., 29488., 30392., 31184.,
      31976., 32768., 33692., 34488., 35284., 36080., 37024., 37824., 38624.,
      39424., 27524., 28328., 29132., 29936., 30856., 31664., 32472., 33280.,
      34220., 35032., 35844., 36656., 37616., 38432., 39248., 40064., 30724.,
      31656., 32588., 33520., 34568., 35504., 36440., 37376., 38444., 39384.,
      40324., 41264., 42352., 43296., 44240., 45184., 31124., 32072., 33020.,
      33968., 35032., 35984., 36936., 37888., 38972., 39928., 40884., 41840.,
      42944., 43904., 44864., 45824., 31524., 32488., 33452., 34416., 35496.,
      36464., 37432., 38400., 39500., 40472., 41444., 42416., 43536., 44512.,
      45488., 46464., 31924., 32904., 33884., 34864., 35960., 36944., 37928.,
      38912., 40028., 41016., 42004., 42992., 44128., 45120., 46112., 47104.,
      32324., 33320., 34316., 35312., 36424., 37424., 38424., 39424., 40556.,
      41560., 42564., 43568., 44720., 45728., 46736., 47744., 32724., 33736.,
      34748., 35760., 36888., 37904., 38920., 39936., 41084., 42104., 43124.,
      44144., 45312., 46336., 47360., 48384., 33124., 34152., 35180., 36208.,
      37352., 38384., 39416., 40448., 41612., 42648., 43684., 44720., 45904.,
      46944., 47984., 49024., 36324., 37480., 38636., 39792., 41064., 42224.,
      43384., 44544., 45836., 47000., 48164., 49328., 50640., 51808., 52976.,
      54144., 36724., 37896., 39068., 40240., 41528., 42704., 43880., 45056.,
      46364., 47544., 48724., 49904., 51232., 52416., 53600., 54784., 37124.,
      38312., 39500., 40688., 41992., 43184., 44376., 45568., 46892., 48088.,
      49284., 50480., 51824., 53024., 54224., 55424., 37524., 38728., 39932.,
      41136., 42456., 43664., 44872., 46080., 47420., 48632., 49844., 51056.,
      52416., 53632., 54848., 56064., 37924., 39144., 40364., 41584., 42920.,
      44144., 45368., 46592., 47948., 49176., 50404., 51632., 53008., 54240.,
      55472., 56704., 38324., 39560., 40796., 42032., 43384., 44624., 45864.,
      47104., 48476., 49720., 50964., 52208., 53600., 54848., 56096., 57344.,
      38724., 39976., 41228., 42480., 43848., 45104., 46360., 47616., 49004.,
      50264., 51524., 52784., 54192., 55456., 56720., 57984., 41924., 43304.,
      44684., 46064., 47560., 48944., 50328., 51712., 53228., 54616., 56004.,
      57392., 58928., 60320., 61712., 63104., 42324., 43720., 45116., 46512.,
      48024., 49424., 50824., 52224., 53756., 55160., 56564., 57968., 59520.,
      60928., 62336., 63744., 42724., 44136., 45548., 46960., 48488., 49904.,
      51320., 52736., 54284., 55704., 57124., 58544., 60112., 61536., 62960.,
      64384., 43124., 44552., 45980., 47408., 48952., 50384., 51816., 53248.,
      54812., 56248., 57684., 59120., 60704., 62144., 63584., 65024., 43524.,
      44968., 46412., 47856., 49416., 50864., 52312., 53760., 55340., 56792.,
      58244., 59696., 61296., 62752., 64208., 65664., 43924., 45384., 46844.,
      48304., 49880., 51344., 52808., 54272., 55868., 57336., 58804., 60272.,
      61888., 63360., 64832., 66304., 44324., 45800., 47276., 48752., 50344.,
      51824., 53304., 54784., 56396., 57880., 59364., 60848., 62480., 63968.,
      65456., 66944., 47524., 49128., 50732., 52336., 54056., 55664., 57272.,
      58880., 60620., 62232., 63844., 65456., 67216., 68832., 70448., 72064.,
      47924., 49544., 51164., 52784., 54520., 56144., 57768., 59392., 61148.,
      62776., 64404., 66032., 67808., 69440., 71072., 72704., 48324., 49960.,
      51596., 53232., 54984., 56624., 58264., 59904., 61676., 63320., 64964.,
      66608., 68400., 70048., 71696., 73344., 48724., 50376., 52028., 53680.,
      55448., 57104., 58760., 60416., 62204., 63864., 65524., 67184., 68992.,
      70656., 72320., 73984., 49124., 50792., 52460., 54128., 55912., 57584.,
      59256., 60928., 62732., 64408., 66084., 67760., 69584., 71264., 72944.,
      74624., 49524., 51208., 52892., 54576., 56376., 58064., 59752., 61440.,
      63260., 64952., 66644., 68336., 70176., 71872., 73568., 75264., 49924.,
      51624., 53324., 55024., 56840., 58544., 60248., 61952., 63788., 65496.,
      67204., 68912., 70768., 72480., 74192., 75904., 53124., 54952., 56780.,
      58608., 60552., 62384., 64216., 66048., 68012., 69848., 71684., 73520.,
      75504., 77344., 79184., 81024., 53524., 55368., 57212., 59056., 61016.,
      62864., 64712., 66560., 68540., 70392., 72244., 74096., 76096., 77952.,
      79808., 81664., 53924., 55784., 57644., 59504., 61480., 63344., 65208.,
      67072., 69068., 70936., 72804., 74672., 76688., 78560., 80432., 82304.,
      54324., 56200., 58076., 59952., 61944., 63824., 65704., 67584., 69596.,
      71480., 73364., 75248., 77280., 79168., 81056., 82944., 54724., 56616.,
      58508., 60400., 62408., 64304., 66200., 68096., 70124., 72024., 73924.,
      75824., 77872., 79776., 81680., 83584., 55124., 57032., 58940., 60848.,
      62872., 64784., 66696., 68608., 70652., 72568., 74484., 76400., 78464.,
      80384., 82304., 84224., 55524., 57448., 59372., 61296., 63336., 65264.,
      67192., 69120., 71180., 73112., 75044., 76976., 79056., 80992., 82928.,
      84864.};
  const std::array<int, 4> in_shape = {{1, 14, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      41760., 41952., 61140., 61419., 61698., 39900., 40080., 43872., 44064.,
      64209., 64488., 64767., 41880., 42060., 59040., 59301., 86310., 86688.,
      87066., 56223., 56466., 61911., 62172., 90468., 90846., 91224., 58896.,
      59139., 64782., 65043., 94626., 95004., 95382., 61569., 61812., 37356.,
      37512., 54435., 54660., 54885., 35328., 35472., 39072., 39228., 56910.,
      57135., 57360., 36912., 37056.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      15536., 15614., 15692., 15770., 15848., 15926., 16004., 16394., 16472.,
      16550., 16628., 16706., 16784., 16862., 17252., 17330., 17408., 17486.,
      17564., 17642., 17720., 18110., 18188., 18266., 18344., 18422., 18500.,
      18578., 18968., 19046., 19124., 19202., 19280., 19358., 19436., 19826.,
      19904., 19982., 20060., 20138., 20216., 20294., 20684., 20762., 20840.,
      20918., 20996., 21074., 21152.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      81480.,  83520.,  81852.,  83904.,  119220., 122280., 119760., 122838.,
      120300., 123396., 77748.,  79800.,  78096.,  80160.,  85572.,  87744.,
      85944.,  88128.,  125160., 128418., 125700., 128976., 126240., 129534.,
      81576.,  83760.,  81924.,  84120.,  115020., 118080., 115524., 118602.,
      168030., 172620., 168759., 173376., 169488., 174132., 109368., 112446.,
      109836., 112932., 120564., 123822., 121068., 124344., 176049., 180936.,
      176778., 181692., 177507., 182448., 114516., 117792., 114984., 118278.,
      126108., 129564., 126612., 130086., 184068., 189252., 184797., 190008.,
      185526., 190764., 119664., 123138., 120132., 123624., 72540.,  74712.,
      72840.,  75024.,  105612., 108870., 106044., 109320., 106476., 109770.,
      68472.,  70656.,  68748.,  70944.,  75840.,  78144.,  76140.,  78456.,
      110364., 113820., 110796., 114270., 111228., 114720., 71508.,  73824.,
      71784.,  74112.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      29320., 31072., 29464., 31228., 29608., 31384., 29752., 31540., 29896.,
      31696., 30040., 31852., 30184., 32008., 30904., 32788., 31048., 32944.,
      31192., 33100., 31336., 33256., 31480., 33412., 31624., 33568., 31768.,
      33724., 32488., 34504., 32632., 34660., 32776., 34816., 32920., 34972.,
      33064., 35128., 33208., 35284., 33352., 35440., 34072., 36220., 34216.,
      36376., 34360., 36532., 34504., 36688., 34648., 36844., 34792., 37000.,
      34936., 37156., 35656., 37936., 35800., 38092., 35944., 38248., 36088.,
      38404., 36232., 38560., 36376., 38716., 36520., 38872., 37240., 39652.,
      37384., 39808., 37528., 39964., 37672., 40120., 37816., 40276., 37960.,
      40432., 38104., 40588., 38824., 41368., 38968., 41524., 39112., 41680.,
      39256., 41836., 39400., 41992., 39544., 42148., 39688., 42304.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      160920., 162960., 165000., 167040., 161652., 163704., 165756., 167808.,
      235380., 238440., 241500., 244560., 236442., 239520., 242598., 245676.,
      237504., 240600., 243696., 246792., 153444., 155496., 157548., 159600.,
      154128., 156192., 158256., 160320., 168972., 171144., 173316., 175488.,
      169704., 171888., 174072., 176256., 247062., 250320., 253578., 256836.,
      248124., 251400., 254676., 257952., 249186., 252480., 255774., 259068.,
      160968., 163152., 165336., 167520., 161652., 163848., 166044., 168240.,
      226980., 230040., 233100., 236160., 227970., 231048., 234126., 237204.,
      331470., 336060., 340650., 345240., 332901., 337518., 342135., 346752.,
      334332., 338976., 343620., 348264., 215658., 218736., 221814., 224892.,
      216576., 219672., 222768., 225864., 237870., 241128., 244386., 247644.,
      238860., 242136., 245412., 248688., 347211., 352098., 356985., 361872.,
      348642., 353556., 358470., 363384., 350073., 355014., 359955., 364896.,
      225756., 229032., 232308., 235584., 226674., 229968., 233262., 236556.,
      248760., 252216., 255672., 259128., 249750., 253224., 256698., 260172.,
      362952., 368136., 373320., 378504., 364383., 369594., 374805., 380016.,
      365814., 371052., 376290., 381528., 235854., 239328., 242802., 246276.,
      236772., 240264., 243756., 247248., 142908., 145080., 147252., 149424.,
      143496., 145680., 147864., 150048., 207966., 211224., 214482., 217740.,
      208812., 212088., 215364., 218640., 209658., 212952., 216246., 219540.,
      134760., 136944., 139128., 141312., 135300., 137496., 139692., 141888.,
      149376., 151680., 153984., 156288., 149964., 152280., 154596., 156912.,
      217272., 220728., 224184., 227640., 218118., 221592., 225066., 228540.,
      218964., 222456., 225948., 229440., 140700., 143016., 145332., 147648.,
      141240., 143568., 145896., 148224.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      56888., 58640., 60392., 62144., 57164., 58928., 60692., 62456., 57440.,
      59216., 60992., 62768., 57716., 59504., 61292., 63080., 57992., 59792.,
      61592., 63392., 58268., 60080., 61892., 63704., 58544., 60368., 62192.,
      64016., 59924., 61808., 63692., 65576., 60200., 62096., 63992., 65888.,
      60476., 62384., 64292., 66200., 60752., 62672., 64592., 66512., 61028.,
      62960., 64892., 66824., 61304., 63248., 65192., 67136., 61580., 63536.,
      65492., 67448., 62960., 64976., 66992., 69008., 63236., 65264., 67292.,
      69320., 63512., 65552., 67592., 69632., 63788., 65840., 67892., 69944.,
      64064., 66128., 68192., 70256., 64340., 66416., 68492., 70568., 64616.,
      66704., 68792., 70880., 65996., 68144., 70292., 72440., 66272., 68432.,
      70592., 72752., 66548., 68720., 70892., 73064., 66824., 69008., 71192.,
      73376., 67100., 69296., 71492., 73688., 67376., 69584., 71792., 74000.,
      67652., 69872., 72092., 74312., 69032., 71312., 73592., 75872., 69308.,
      71600., 73892., 76184., 69584., 71888., 74192., 76496., 69860., 72176.,
      74492., 76808., 70136., 72464., 74792., 77120., 70412., 72752., 75092.,
      77432., 70688., 73040., 75392., 77744., 72068., 74480., 76892., 79304.,
      72344., 74768., 77192., 79616., 72620., 75056., 77492., 79928., 72896.,
      75344., 77792., 80240., 73172., 75632., 78092., 80552., 73448., 75920.,
      78392., 80864., 73724., 76208., 78692., 81176., 75104., 77648., 80192.,
      82736., 75380., 77936., 80492., 83048., 75656., 78224., 80792., 83360.,
      75932., 78512., 81092., 83672., 76208., 78800., 81392., 83984., 76484.,
      79088., 81692., 84296., 76760., 79376., 81992., 84608.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      162588., 167040., 163332., 167808., 237900., 244560., 238980., 245676.,
      240060., 246792., 155148., 159600., 155844., 160320., 170772., 175488.,
      171516., 176256., 249780., 256836., 250860., 257952., 251940., 259068.,
      162804., 167520., 163500., 168240., 229536., 236160., 230544., 237204.,
      335331., 345240., 336789., 346752., 338247., 348264., 218268., 224892.,
      219204., 225864., 240624., 247644., 241632., 248688., 351369., 361872.,
      352827., 363384., 354285., 364896., 228564., 235584., 229500., 236556.,
      251712., 259128., 252720., 260172., 367407., 378504., 368865., 380016.,
      370323., 381528., 238860., 246276., 239796., 247248., 144780., 149424.,
      145380., 150048., 210792., 217740., 211656., 218640., 212520., 219540.,
      136668., 141312., 137220., 141888., 151380., 156288., 151980., 156912.,
      220296., 227640., 221160., 228540., 222024., 229440., 142740., 147648.,
      143292., 148224.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      58496., 62144., 58784., 62456., 59072., 62768., 59360., 63080., 59648.,
      63392., 59936., 63704., 60224., 64016., 61664., 65576., 61952., 65888.,
      62240., 66200., 62528., 66512., 62816., 66824., 63104., 67136., 63392.,
      67448., 64832., 69008., 65120., 69320., 65408., 69632., 65696., 69944.,
      65984., 70256., 66272., 70568., 66560., 70880., 68000., 72440., 68288.,
      72752., 68576., 73064., 68864., 73376., 69152., 73688., 69440., 74000.,
      69728., 74312., 71168., 75872., 71456., 76184., 71744., 76496., 72032.,
      76808., 72320., 77120., 72608., 77432., 72896., 77744., 74336., 79304.,
      74624., 79616., 74912., 79928., 75200., 80240., 75488., 80552., 75776.,
      80864., 76064., 81176., 77504., 82736., 77792., 83048., 78080., 83360.,
      78368., 83672., 78656., 83984., 78944., 84296., 79232., 84608.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      321108., 325176., 330000., 334080., 322572., 326664., 331512., 335616.,
      469698., 475800., 483000., 489120., 471822., 477960., 485196., 491352.,
      473946., 480120., 487392., 493584., 306204., 310296., 315096., 319200.,
      307572., 311688., 316512., 320640., 337212., 341544., 346632., 350976.,
      338676., 343032., 348144., 352512., 493062., 499560., 507156., 513672.,
      495186., 501720., 509352., 515904., 497310., 503880., 511548., 518136.,
      321252., 325608., 330672., 335040., 322620., 327000., 332088., 336480.,
      452970., 459072., 466200., 472320., 454950., 461088., 468252., 474408.,
      661509., 670662., 681300., 690480., 664371., 673578., 684270., 693504.,
      667233., 676494., 687240., 696528., 430398., 436536., 443628., 449784.,
      432234., 438408., 445536., 451728., 474750., 481248., 488772., 495288.,
      476730., 483264., 490824., 497376., 692991., 702738., 713970., 723744.,
      695853., 705654., 716940., 726768., 698715., 708570., 719910., 729792.,
      450594., 457128., 464616., 471168., 452430., 459000., 466524., 473112.,
      496530., 503424., 511344., 518256., 498510., 505440., 513396., 520344.,
      724473., 734814., 746640., 757008., 727335., 737730., 749610., 760032.,
      730197., 740646., 752580., 763056., 470790., 477720., 485604., 492552.,
      472626., 479592., 487512., 494496., 285228., 289560., 294504., 298848.,
      286404., 290760., 295728., 300096., 415086., 421584., 428964., 435480.,
      416778., 423312., 430728., 437280., 418470., 425040., 432492., 439080.,
      268980., 273336., 278256., 282624., 270060., 274440., 279384., 283776.,
      298164., 302760., 307968., 312576., 299340., 303960., 309192., 313824.,
      433698., 440592., 448368., 455280., 435390., 442320., 450132., 457080.,
      437082., 444048., 451896., 458880., 280860., 285480., 290664., 295296.,
      281940., 286584., 291792., 296448.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      113500., 116992., 120784., 124288., 114052., 117568., 121384., 124912.,
      114604., 118144., 121984., 125536., 115156., 118720., 122584., 126160.,
      115708., 119296., 123184., 126784., 116260., 119872., 123784., 127408.,
      116812., 120448., 124384., 128032., 119572., 123328., 127384., 131152.,
      120124., 123904., 127984., 131776., 120676., 124480., 128584., 132400.,
      121228., 125056., 129184., 133024., 121780., 125632., 129784., 133648.,
      122332., 126208., 130384., 134272., 122884., 126784., 130984., 134896.,
      125644., 129664., 133984., 138016., 126196., 130240., 134584., 138640.,
      126748., 130816., 135184., 139264., 127300., 131392., 135784., 139888.,
      127852., 131968., 136384., 140512., 128404., 132544., 136984., 141136.,
      128956., 133120., 137584., 141760., 131716., 136000., 140584., 144880.,
      132268., 136576., 141184., 145504., 132820., 137152., 141784., 146128.,
      133372., 137728., 142384., 146752., 133924., 138304., 142984., 147376.,
      134476., 138880., 143584., 148000., 135028., 139456., 144184., 148624.,
      137788., 142336., 147184., 151744., 138340., 142912., 147784., 152368.,
      138892., 143488., 148384., 152992., 139444., 144064., 148984., 153616.,
      139996., 144640., 149584., 154240., 140548., 145216., 150184., 154864.,
      141100., 145792., 150784., 155488., 143860., 148672., 153784., 158608.,
      144412., 149248., 154384., 159232., 144964., 149824., 154984., 159856.,
      145516., 150400., 155584., 160480., 146068., 150976., 156184., 161104.,
      146620., 151552., 156784., 161728., 147172., 152128., 157384., 162352.,
      149932., 155008., 160384., 165472., 150484., 155584., 160984., 166096.,
      151036., 156160., 161584., 166720., 151588., 156736., 162184., 167344.,
      152140., 157312., 162784., 167968., 152692., 157888., 163384., 168592.,
      153244., 158464., 163984., 169216.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      638148.,  642216.,  646284.,  650352.,  655920.,  660000.,  664080.,
      668160.,  641052.,  645144.,  649236.,  653328.,  658920.,  663024.,
      667128.,  671232.,  933294.,  939396.,  945498.,  951600.,  959880.,
      966000.,  972120.,  978240.,  937506.,  943644.,  949782.,  955920.,
      964236.,  970392.,  976548.,  982704.,  941718.,  947892.,  954066.,
      960240.,  968592.,  974784.,  980976.,  987168.,  608316.,  612408.,
      616500.,  620592.,  626088.,  630192.,  634296.,  638400.,  611028.,
      615144.,  619260.,  623376.,  628896.,  633024.,  637152.,  641280.,
      670092.,  674424.,  678756.,  683088.,  688920.,  693264.,  697608.,
      701952.,  672996.,  677352.,  681708.,  686064.,  691920.,  696288.,
      700656.,  705024.,  979626.,  986124.,  992622.,  999120.,  1007796.,
      1014312., 1020828., 1027344., 983838.,  990372.,  996906.,  1003440.,
      1012152., 1018704., 1025256., 1031808., 988050.,  994620.,  1001190.,
      1007760., 1016508., 1023096., 1029684., 1036272., 638148.,  642504.,
      646860.,  651216.,  656976.,  661344.,  665712.,  670080.,  640860.,
      645240.,  649620.,  654000.,  659784.,  664176.,  668568.,  672960.,
      899838.,  905940.,  912042.,  918144.,  926280.,  932400.,  938520.,
      944640.,  903762.,  909900.,  916038.,  922176.,  930348.,  936504.,
      942660.,  948816.,  1313865., 1323018., 1332171., 1341324., 1353420.,
      1362600., 1371780., 1380960., 1319535., 1328742., 1337949., 1347156.,
      1359306., 1368540., 1377774., 1387008., 1325205., 1334466., 1343727.,
      1352988., 1365192., 1374480., 1383768., 1393056., 854658.,  860796.,
      866934.,  873072.,  881100.,  887256.,  893412.,  899568.,  858294.,
      864468.,  870642.,  876816.,  884880.,  891072.,  897264.,  903456.,
      943002.,  949500.,  955998.,  962496.,  971028.,  977544.,  984060.,
      990576.,  946926.,  953460.,  959994.,  966528.,  975096.,  981648.,
      988200.,  994752.,  1376235., 1385982., 1395729., 1405476., 1418166.,
      1427940., 1437714., 1447488., 1381905., 1391706., 1401507., 1411308.,
      1424052., 1433880., 1443708., 1453536., 1387575., 1397430., 1407285.,
      1417140., 1429938., 1439820., 1449702., 1459584., 894654.,  901188.,
      907722.,  914256.,  922680.,  929232.,  935784.,  942336.,  898290.,
      904860.,  911430.,  918000.,  926460.,  933048.,  939636.,  946224.,
      986166.,  993060.,  999954.,  1006848., 1015776., 1022688., 1029600.,
      1036512., 990090.,  997020.,  1003950., 1010880., 1019844., 1026792.,
      1033740., 1040688., 1438605., 1448946., 1459287., 1469628., 1482912.,
      1493280., 1503648., 1514016., 1444275., 1454670., 1465065., 1475460.,
      1488798., 1499220., 1509642., 1520064., 1449945., 1460394., 1470843.,
      1481292., 1494684., 1505160., 1515636., 1526112., 934650.,  941580.,
      948510.,  955440.,  964260.,  971208.,  978156.,  985104.,  938286.,
      945252.,  952218.,  959184.,  968040.,  975024.,  982008.,  988992.,
      566124.,  570456.,  574788.,  579120.,  584664.,  589008.,  593352.,
      597696.,  568452.,  572808.,  577164.,  581520.,  587088.,  591456.,
      595824.,  600192.,  823674.,  830172.,  836670.,  843168.,  851412.,
      857928.,  864444.,  870960.,  827022.,  833556.,  840090.,  846624.,
      854904.,  861456.,  868008.,  874560.,  830370.,  836940.,  843510.,
      850080.,  858396.,  864984.,  871572.,  878160.,  533604.,  537960.,
      542316.,  546672.,  552144.,  556512.,  560880.,  565248.,  535740.,
      540120.,  544500.,  548880.,  554376.,  558768.,  563160.,  567552.,
      591732.,  596328.,  600924.,  605520.,  611328.,  615936.,  620544.,
      625152.,  594060.,  598680.,  603300.,  607920.,  613752.,  618384.,
      623016.,  627648.,  860502.,  867396.,  874290.,  881184.,  889824.,
      896736.,  903648.,  910560.,  863850.,  870780.,  877710.,  884640.,
      893316.,  900264.,  907212.,  914160.,  867198.,  874164.,  881130.,
      888096.,  896808.,  903792.,  910776.,  917760.,  557100.,  561720.,
      566340.,  570960.,  576696.,  581328.,  585960.,  590592.,  559236.,
      563880.,  568524.,  573168.,  578928.,  583584.,  588240.,  592896.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      223508., 227000., 230492., 233984., 238064., 241568., 245072., 248576.,
      224588., 228104., 231620., 235136., 239240., 242768., 246296., 249824.,
      225668., 229208., 232748., 236288., 240416., 243968., 247520., 251072.,
      226748., 230312., 233876., 237440., 241592., 245168., 248744., 252320.,
      227828., 231416., 235004., 238592., 242768., 246368., 249968., 253568.,
      228908., 232520., 236132., 239744., 243944., 247568., 251192., 254816.,
      229988., 233624., 237260., 240896., 245120., 248768., 252416., 256064.,
      235388., 239144., 242900., 246656., 251000., 254768., 258536., 262304.,
      236468., 240248., 244028., 247808., 252176., 255968., 259760., 263552.,
      237548., 241352., 245156., 248960., 253352., 257168., 260984., 264800.,
      238628., 242456., 246284., 250112., 254528., 258368., 262208., 266048.,
      239708., 243560., 247412., 251264., 255704., 259568., 263432., 267296.,
      240788., 244664., 248540., 252416., 256880., 260768., 264656., 268544.,
      241868., 245768., 249668., 253568., 258056., 261968., 265880., 269792.,
      247268., 251288., 255308., 259328., 263936., 267968., 272000., 276032.,
      248348., 252392., 256436., 260480., 265112., 269168., 273224., 277280.,
      249428., 253496., 257564., 261632., 266288., 270368., 274448., 278528.,
      250508., 254600., 258692., 262784., 267464., 271568., 275672., 279776.,
      251588., 255704., 259820., 263936., 268640., 272768., 276896., 281024.,
      252668., 256808., 260948., 265088., 269816., 273968., 278120., 282272.,
      253748., 257912., 262076., 266240., 270992., 275168., 279344., 283520.,
      259148., 263432., 267716., 272000., 276872., 281168., 285464., 289760.,
      260228., 264536., 268844., 273152., 278048., 282368., 286688., 291008.,
      261308., 265640., 269972., 274304., 279224., 283568., 287912., 292256.,
      262388., 266744., 271100., 275456., 280400., 284768., 289136., 293504.,
      263468., 267848., 272228., 276608., 281576., 285968., 290360., 294752.,
      264548., 268952., 273356., 277760., 282752., 287168., 291584., 296000.,
      265628., 270056., 274484., 278912., 283928., 288368., 292808., 297248.,
      271028., 275576., 280124., 284672., 289808., 294368., 298928., 303488.,
      272108., 276680., 281252., 285824., 290984., 295568., 300152., 304736.,
      273188., 277784., 282380., 286976., 292160., 296768., 301376., 305984.,
      274268., 278888., 283508., 288128., 293336., 297968., 302600., 307232.,
      275348., 279992., 284636., 289280., 294512., 299168., 303824., 308480.,
      276428., 281096., 285764., 290432., 295688., 300368., 305048., 309728.,
      277508., 282200., 286892., 291584., 296864., 301568., 306272., 310976.,
      282908., 287720., 292532., 297344., 302744., 307568., 312392., 317216.,
      283988., 288824., 293660., 298496., 303920., 308768., 313616., 318464.,
      285068., 289928., 294788., 299648., 305096., 309968., 314840., 319712.,
      286148., 291032., 295916., 300800., 306272., 311168., 316064., 320960.,
      287228., 292136., 297044., 301952., 307448., 312368., 317288., 322208.,
      288308., 293240., 298172., 303104., 308624., 313568., 318512., 323456.,
      289388., 294344., 299300., 304256., 309800., 314768., 319736., 324704.,
      294788., 299864., 304940., 310016., 315680., 320768., 325856., 330944.,
      295868., 300968., 306068., 311168., 316856., 321968., 327080., 332192.,
      296948., 302072., 307196., 312320., 318032., 323168., 328304., 333440.,
      298028., 303176., 308324., 313472., 319208., 324368., 329528., 334688.,
      299108., 304280., 309452., 314624., 320384., 325568., 330752., 335936.,
      300188., 305384., 310580., 315776., 321560., 326768., 331976., 337184.,
      301268., 306488., 311708., 316928., 322736., 327968., 333200., 338432.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      641484.,  650352.,  659244.,  668160.,  644412.,  653328.,  662268.,
      671232.,  938334.,  951600.,  964902.,  978240.,  942582.,  955920.,
      969294.,  982704.,  946830.,  960240.,  973686.,  987168.,  611724.,
      620592.,  629484.,  638400.,  614460.,  623376.,  632316.,  641280.,
      673692.,  683088.,  692508.,  701952.,  676620.,  686064.,  695532.,
      705024.,  985062.,  999120.,  1013214., 1027344., 989310.,  1003440.,
      1017606., 1031808., 993558.,  1007760., 1021998., 1036272., 641820.,
      651216.,  660636.,  670080.,  644556.,  654000.,  663468.,  672960.,
      904950.,  918144.,  931374.,  944640.,  908910.,  922176.,  935478.,
      948816.,  1321587., 1341324., 1361115., 1380960., 1327311., 1347156.,
      1367055., 1387008., 1333035., 1352988., 1372995., 1393056., 859878.,
      873072.,  886302.,  899568.,  863550.,  876816.,  890118.,  903456.,
      948510.,  962496.,  976518.,  990576.,  952470.,  966528.,  980622.,
      994752.,  1384551., 1405476., 1426455., 1447488., 1390275., 1411308.,
      1432395., 1453536., 1395999., 1417140., 1438335., 1459584., 900270.,
      914256.,  928278.,  942336.,  903942.,  918000.,  932094.,  946224.,
      992070.,  1006848., 1021662., 1036512., 996030.,  1010880., 1025766.,
      1040688., 1447515., 1469628., 1491795., 1514016., 1453239., 1475460.,
      1497735., 1520064., 1458963., 1481292., 1503675., 1526112., 940662.,
      955440.,  970254.,  985104.,  944334.,  959184.,  974070.,  988992.,
      569868.,  579120.,  588396.,  597696.,  572220.,  581520.,  590844.,
      600192.,  829326.,  843168.,  857046.,  870960.,  832710.,  846624.,
      860574.,  874560.,  836094.,  850080.,  864102.,  878160.,  537420.,
      546672.,  555948.,  565248.,  539580.,  548880.,  558204.,  567552.,
      595740.,  605520.,  615324.,  625152.,  598092.,  607920.,  617772.,
      627648.,  866550.,  881184.,  895854.,  910560.,  869934.,  884640.,
      899382.,  914160.,  873318.,  888096.,  902910.,  917760.,  561180.,
      570960.,  580764.,  590592.,  563340.,  573168.,  583020.,  592896.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      226724., 233984., 241268., 248576., 227828., 235136., 242468., 249824.,
      228932., 236288., 243668., 251072., 230036., 237440., 244868., 252320.,
      231140., 238592., 246068., 253568., 232244., 239744., 247268., 254816.,
      233348., 240896., 248468., 256064., 238868., 246656., 254468., 262304.,
      239972., 247808., 255668., 263552., 241076., 248960., 256868., 264800.,
      242180., 250112., 258068., 266048., 243284., 251264., 259268., 267296.,
      244388., 252416., 260468., 268544., 245492., 253568., 261668., 269792.,
      251012., 259328., 267668., 276032., 252116., 260480., 268868., 277280.,
      253220., 261632., 270068., 278528., 254324., 262784., 271268., 279776.,
      255428., 263936., 272468., 281024., 256532., 265088., 273668., 282272.,
      257636., 266240., 274868., 283520., 263156., 272000., 280868., 289760.,
      264260., 273152., 282068., 291008., 265364., 274304., 283268., 292256.,
      266468., 275456., 284468., 293504., 267572., 276608., 285668., 294752.,
      268676., 277760., 286868., 296000., 269780., 278912., 288068., 297248.,
      275300., 284672., 294068., 303488., 276404., 285824., 295268., 304736.,
      277508., 286976., 296468., 305984., 278612., 288128., 297668., 307232.,
      279716., 289280., 298868., 308480., 280820., 290432., 300068., 309728.,
      281924., 291584., 301268., 310976., 287444., 297344., 307268., 317216.,
      288548., 298496., 308468., 318464., 289652., 299648., 309668., 319712.,
      290756., 300800., 310868., 320960., 291860., 301952., 312068., 322208.,
      292964., 303104., 313268., 323456., 294068., 304256., 314468., 324704.,
      299588., 310016., 320468., 330944., 300692., 311168., 321668., 332192.,
      301796., 312320., 322868., 333440., 302900., 313472., 324068., 334688.,
      304004., 314624., 325268., 335936., 305108., 315776., 326468., 337184.,
      306212., 316928., 327668., 338432.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1274844., 1282968., 1292568., 1300704., 1310340., 1318488., 1328160.,
      1336320., 1280652., 1288824., 1298472., 1306656., 1316340., 1324536.,
      1334256., 1342464., 1864482., 1876668., 1890996., 1903200., 1917582.,
      1929804., 1944240., 1956480., 1872906., 1885164., 1899564., 1911840.,
      1926294., 1938588., 1953096., 1965408., 1881330., 1893660., 1908132.,
      1920480., 1935006., 1947372., 1961952., 1974336., 1215276., 1223448.,
      1233000., 1241184., 1250772., 1258968., 1268592., 1276800., 1220700.,
      1228920., 1238520., 1246752., 1256388., 1264632., 1274304., 1282560.,
      1338732., 1347384., 1357512., 1366176., 1376340., 1385016., 1395216.,
      1403904., 1344540., 1353240., 1363416., 1372128., 1382340., 1391064.,
      1401312., 1410048., 1957146., 1970124., 1985244., 1998240., 2013414.,
      2026428., 2041656., 2054688., 1965570., 1978620., 1993812., 2006880.,
      2022126., 2035212., 2050512., 2063616., 1973994., 1987116., 2002380.,
      2015520., 2030838., 2043996., 2059368., 2072544., 1274940., 1283640.,
      1293720., 1302432., 1312548., 1321272., 1331424., 1340160., 1280364.,
      1289112., 1299240., 1308000., 1318164., 1326936., 1337136., 1345920.,
      1797714., 1809900., 1824084., 1836288., 1850526., 1862748., 1877040.,
      1889280., 1805562., 1817820., 1832076., 1844352., 1858662., 1870956.,
      1885320., 1897632., 2624895., 2643174., 2664342., 2682648., 2703897.,
      2722230., 2743560., 2761920., 2636235., 2654622., 2675898., 2694312.,
      2715669., 2734110., 2755548., 2774016., 2647575., 2666070., 2687454.,
      2705976., 2727441., 2745990., 2767536., 2786112., 1707498., 1719756.,
      1733868., 1746144., 1760310., 1772604., 1786824., 1799136., 1714770.,
      1727100., 1741284., 1753632., 1767870., 1780236., 1794528., 1806912.,
      1884042., 1897020., 1911996., 1924992., 1940022., 1953036., 1968120.,
      1981152., 1891890., 1904940., 1919988., 1933056., 1948158., 1961244.,
      1976400., 1989504., 2749635., 2769102., 2791458., 2810952., 2833389.,
      2852910., 2875428., 2894976., 2760975., 2780550., 2803014., 2822616.,
      2845161., 2864790., 2887416., 2907072., 2772315., 2791998., 2814570.,
      2834280., 2856933., 2876670., 2899404., 2919168., 1787490., 1800540.,
      1815444., 1828512., 1843470., 1856556., 1871568., 1884672., 1794762.,
      1807884., 1822860., 1836000., 1851030., 1864188., 1879272., 1892448.,
      1970370., 1984140., 1999908., 2013696., 2029518., 2043324., 2059200.,
      2073024., 1978218., 1992060., 2007900., 2021760., 2037654., 2051532.,
      2067480., 2081376., 2874375., 2895030., 2918574., 2939256., 2962881.,
      2983590., 3007296., 3028032., 2885715., 2906478., 2930130., 2950920.,
      2974653., 2995470., 3019284., 3040128., 2897055., 2917926., 2941686.,
      2962584., 2986425., 3007350., 3031272., 3052224., 1867482., 1881324.,
      1897020., 1910880., 1926630., 1940508., 1956312., 1970208., 1874754.,
      1888668., 1904436., 1918368., 1934190., 1948140., 1964016., 1977984.,
      1131084., 1139736., 1149576., 1158240., 1168116., 1176792., 1186704.,
      1195392., 1135740., 1144440., 1154328., 1163040., 1172964., 1181688.,
      1191648., 1200384., 1645674., 1658652., 1673340., 1686336., 1701078.,
      1714092., 1728888., 1741920., 1652370., 1665420., 1680180., 1693248.,
      1708062., 1721148., 1736016., 1749120., 1659066., 1672188., 1687020.,
      1700160., 1715046., 1728204., 1743144., 1756320., 1066140., 1074840.,
      1084632., 1093344., 1103172., 1111896., 1121760., 1130496., 1070412.,
      1079160., 1089000., 1097760., 1107636., 1116408., 1126320., 1135104.,
      1182300., 1191480., 1201848., 1211040., 1221444., 1230648., 1241088.,
      1250304., 1186956., 1196184., 1206600., 1215840., 1226292., 1235544.,
      1246032., 1255296., 1719330., 1733100., 1748580., 1762368., 1777902.,
      1791708., 1807296., 1821120., 1726026., 1739868., 1755420., 1769280.,
      1784886., 1798764., 1814424., 1828320., 1732722., 1746636., 1762260.,
      1776192., 1791870., 1805820., 1821552., 1835520., 1113132., 1122360.,
      1132680., 1141920., 1152276., 1161528., 1171920., 1181184., 1117404.,
      1126680., 1137048., 1146336., 1156740., 1166040., 1176480., 1185792.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      446476., 453448., 460984., 467968., 475540., 482536., 490144., 497152.,
      448636., 455656., 463240., 470272., 477892., 484936., 492592., 499648.,
      450796., 457864., 465496., 472576., 480244., 487336., 495040., 502144.,
      452956., 460072., 467752., 474880., 482596., 489736., 497488., 504640.,
      455116., 462280., 470008., 477184., 484948., 492136., 499936., 507136.,
      457276., 464488., 472264., 479488., 487300., 494536., 502384., 509632.,
      459436., 466696., 474520., 481792., 489652., 496936., 504832., 512128.,
      470236., 477736., 485800., 493312., 501412., 508936., 517072., 524608.,
      472396., 479944., 488056., 495616., 503764., 511336., 519520., 527104.,
      474556., 482152., 490312., 497920., 506116., 513736., 521968., 529600.,
      476716., 484360., 492568., 500224., 508468., 516136., 524416., 532096.,
      478876., 486568., 494824., 502528., 510820., 518536., 526864., 534592.,
      481036., 488776., 497080., 504832., 513172., 520936., 529312., 537088.,
      483196., 490984., 499336., 507136., 515524., 523336., 531760., 539584.,
      493996., 502024., 510616., 518656., 527284., 535336., 544000., 552064.,
      496156., 504232., 512872., 520960., 529636., 537736., 546448., 554560.,
      498316., 506440., 515128., 523264., 531988., 540136., 548896., 557056.,
      500476., 508648., 517384., 525568., 534340., 542536., 551344., 559552.,
      502636., 510856., 519640., 527872., 536692., 544936., 553792., 562048.,
      504796., 513064., 521896., 530176., 539044., 547336., 556240., 564544.,
      506956., 515272., 524152., 532480., 541396., 549736., 558688., 567040.,
      517756., 526312., 535432., 544000., 553156., 561736., 570928., 579520.,
      519916., 528520., 537688., 546304., 555508., 564136., 573376., 582016.,
      522076., 530728., 539944., 548608., 557860., 566536., 575824., 584512.,
      524236., 532936., 542200., 550912., 560212., 568936., 578272., 587008.,
      526396., 535144., 544456., 553216., 562564., 571336., 580720., 589504.,
      528556., 537352., 546712., 555520., 564916., 573736., 583168., 592000.,
      530716., 539560., 548968., 557824., 567268., 576136., 585616., 594496.,
      541516., 550600., 560248., 569344., 579028., 588136., 597856., 606976.,
      543676., 552808., 562504., 571648., 581380., 590536., 600304., 609472.,
      545836., 555016., 564760., 573952., 583732., 592936., 602752., 611968.,
      547996., 557224., 567016., 576256., 586084., 595336., 605200., 614464.,
      550156., 559432., 569272., 578560., 588436., 597736., 607648., 616960.,
      552316., 561640., 571528., 580864., 590788., 600136., 610096., 619456.,
      554476., 563848., 573784., 583168., 593140., 602536., 612544., 621952.,
      565276., 574888., 585064., 594688., 604900., 614536., 624784., 634432.,
      567436., 577096., 587320., 596992., 607252., 616936., 627232., 636928.,
      569596., 579304., 589576., 599296., 609604., 619336., 629680., 639424.,
      571756., 581512., 591832., 601600., 611956., 621736., 632128., 641920.,
      573916., 583720., 594088., 603904., 614308., 624136., 634576., 644416.,
      576076., 585928., 596344., 606208., 616660., 626536., 637024., 646912.,
      578236., 588136., 598600., 608512., 619012., 628936., 639472., 649408.,
      589036., 599176., 609880., 620032., 630772., 640936., 651712., 661888.,
      591196., 601384., 612136., 622336., 633124., 643336., 654160., 664384.,
      593356., 603592., 614392., 624640., 635476., 645736., 656608., 666880.,
      595516., 605800., 616648., 626944., 637828., 648136., 659056., 669376.,
      597676., 608008., 618904., 629248., 640180., 650536., 661504., 671872.,
      599836., 610216., 621160., 631552., 642532., 652936., 663952., 674368.,
      601996., 612424., 623416., 633856., 644884., 655336., 666400., 676864.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2541564., 2549688., 2557812., 2565936., 2577000., 2585136., 2593272.,
      2601408., 2612532., 2620680., 2628828., 2636976., 2648160., 2656320.,
      2664480., 2672640., 2553132., 2561304., 2569476., 2577648., 2588760.,
      2596944., 2605128., 2613312., 2624484., 2632680., 2640876., 2649072.,
      2660304., 2668512., 2676720., 2684928., 3716778., 3728964., 3741150.,
      3753336., 3769788., 3781992., 3794196., 3806400., 3822942., 3835164.,
      3847386., 3859608., 3876240., 3888480., 3900720., 3912960., 3733554.,
      3745812., 3758070., 3770328., 3786852., 3799128., 3811404., 3823680.,
      3840294., 3852588., 3864882., 3877176., 3893880., 3906192., 3918504.,
      3930816., 3750330., 3762660., 3774990., 3787320., 3803916., 3816264.,
      3828612., 3840960., 3857646., 3870012., 3882378., 3894744., 3911520.,
      3923904., 3936288., 3948672., 2422380., 2430552., 2438724., 2446896.,
      2457816., 2466000., 2474184., 2482368., 2493348., 2501544., 2509740.,
      2517936., 2528976., 2537184., 2545392., 2553600., 2433180., 2441400.,
      2449620., 2457840., 2468808., 2477040., 2485272., 2493504., 2504532.,
      2512776., 2521020., 2529264., 2540352., 2548608., 2556864., 2565120.,
      2668812., 2677464., 2686116., 2694768., 2706360., 2715024., 2723688.,
      2732352., 2744004., 2752680., 2761356., 2770032., 2781744., 2790432.,
      2799120., 2807808., 2680380., 2689080., 2697780., 2706480., 2718120.,
      2726832., 2735544., 2744256., 2755956., 2764680., 2773404., 2782128.,
      2793888., 2802624., 2811360., 2820096., 3901314., 3914292., 3927270.,
      3940248., 3957492., 3970488., 3983484., 3996480., 4013814., 4026828.,
      4039842., 4052856., 4070280., 4083312., 4096344., 4109376., 3918090.,
      3931140., 3944190., 3957240., 3974556., 3987624., 4000692., 4013760.,
      4031166., 4044252., 4057338., 4070424., 4087920., 4101024., 4114128.,
      4127232., 3934866., 3947988., 3961110., 3974232., 3991620., 4004760.,
      4017900., 4031040., 4048518., 4061676., 4074834., 4087992., 4105560.,
      4118736., 4131912., 4145088., 2541180., 2549880., 2558580., 2567280.,
      2578728., 2587440., 2596152., 2604864., 2616372., 2625096., 2633820.,
      2642544., 2654112., 2662848., 2671584., 2680320., 2551980., 2560728.,
      2569476., 2578224., 2589720., 2598480., 2607240., 2616000., 2627556.,
      2636328., 2645100., 2653872., 2665488., 2674272., 2683056., 2691840.,
      3583242., 3595428., 3607614., 3619800., 3635964., 3648168., 3660372.,
      3672576., 3688830., 3701052., 3713274., 3725496., 3741840., 3754080.,
      3766320., 3778560., 3598866., 3611124., 3623382., 3635640., 3651876.,
      3664152., 3676428., 3688704., 3705030., 3717324., 3729618., 3741912.,
      3758328., 3770640., 3782952., 3795264., 5231511., 5249790., 5268069.,
      5286348., 5310378., 5328684., 5346990., 5365296., 5389461., 5407794.,
      5426127., 5444460., 5468760., 5487120., 5505480., 5523840., 5254083.,
      5272470., 5290857., 5309244., 5333382., 5351796., 5370210., 5388624.,
      5412897., 5431338., 5449779., 5468220., 5492628., 5511096., 5529564.,
      5548032., 5276655., 5295150., 5313645., 5332140., 5356386., 5374908.,
      5393430., 5411952., 5436333., 5454882., 5473431., 5491980., 5516496.,
      5535072., 5553648., 5572224., 3402738., 3414996., 3427254., 3439512.,
      3455460., 3467736., 3480012., 3492288., 3508326., 3520620., 3532914.,
      3545208., 3561336., 3573648., 3585960., 3598272., 3417210., 3429540.,
      3441870., 3454200., 3470220., 3482568., 3494916., 3507264., 3523374.,
      3535740., 3548106., 3560472., 3576672., 3589056., 3601440., 3613824.,
      3755106., 3768084., 3781062., 3794040., 3810996., 3823992., 3836988.,
      3849984., 3867030., 3880044., 3893058., 3906072., 3923208., 3936240.,
      3949272., 3962304., 3770730., 3783780., 3796830., 3809880., 3826908.,
      3839976., 3853044., 3866112., 3883230., 3896316., 3909402., 3922488.,
      3939696., 3952800., 3965904., 3979008., 5479803., 5499270., 5518737.,
      5538204., 5563422., 5582916., 5602410., 5621904., 5647257., 5666778.,
      5686299., 5705820., 5731308., 5750856., 5770404., 5789952., 5502375.,
      5521950., 5541525., 5561100., 5586426., 5606028., 5625630., 5645232.,
      5670693., 5690322., 5709951., 5729580., 5755176., 5774832., 5794488.,
      5814144., 5524947., 5544630., 5564313., 5583996., 5609430., 5629140.,
      5648850., 5668560., 5694129., 5713866., 5733603., 5753340., 5779044.,
      5798808., 5818572., 5838336., 3561930., 3574980., 3588030., 3601080.,
      3617820., 3630888., 3643956., 3657024., 3673854., 3686940., 3700026.,
      3713112., 3730032., 3743136., 3756240., 3769344., 3576402., 3589524.,
      3602646., 3615768., 3632580., 3645720., 3658860., 3672000., 3688902.,
      3702060., 3715218., 3728376., 3745368., 3758544., 3771720., 3784896.,
      3926970., 3940740., 3954510., 3968280., 3986028., 3999816., 4013604.,
      4027392., 4045230., 4059036., 4072842., 4086648., 4104576., 4118400.,
      4132224., 4146048., 3942594., 3956436., 3970278., 3984120., 4001940.,
      4015800., 4029660., 4043520., 4061430., 4075308., 4089186., 4103064.,
      4121064., 4134960., 4148856., 4162752., 5728095., 5748750., 5769405.,
      5790060., 5816466., 5837148., 5857830., 5878512., 5905053., 5925762.,
      5946471., 5967180., 5993856., 6014592., 6035328., 6056064., 5750667.,
      5771430., 5792193., 5812956., 5839470., 5860260., 5881050., 5901840.,
      5928489., 5949306., 5970123., 5990940., 6017724., 6038568., 6059412.,
      6080256., 5773239., 5794110., 5814981., 5835852., 5862474., 5883372.,
      5904270., 5925168., 5951925., 5972850., 5993775., 6014700., 6041592.,
      6062544., 6083496., 6104448., 3721122., 3734964., 3748806., 3762648.,
      3780180., 3794040., 3807900., 3821760., 3839382., 3853260., 3867138.,
      3881016., 3898728., 3912624., 3926520., 3940416., 3735594., 3749508.,
      3763422., 3777336., 3794940., 3808872., 3822804., 3836736., 3854430.,
      3868380., 3882330., 3896280., 3914064., 3928032., 3942000., 3955968.,
      2253516., 2262168., 2270820., 2279472., 2290488., 2299152., 2307816.,
      2316480., 2327556., 2336232., 2344908., 2353584., 2364720., 2373408.,
      2382096., 2390784., 2262780., 2271480., 2280180., 2288880., 2299944.,
      2308656., 2317368., 2326080., 2337204., 2345928., 2354652., 2363376.,
      2374560., 2383296., 2392032., 2400768., 3278370., 3291348., 3304326.,
      3317304., 3333684., 3346680., 3359676., 3372672., 3389142., 3402156.,
      3415170., 3428184., 3444744., 3457776., 3470808., 3483840., 3291690.,
      3304740., 3317790., 3330840., 3347292., 3360360., 3373428., 3386496.,
      3403038., 3416124., 3429210., 3442296., 3458928., 3472032., 3485136.,
      3498240., 3305010., 3318132., 3331254., 3344376., 3360900., 3374040.,
      3387180., 3400320., 3416934., 3430092., 3443250., 3456408., 3473112.,
      3486288., 3499464., 3512640., 2123580., 2132280., 2140980., 2149680.,
      2160552., 2169264., 2177976., 2186688., 2197620., 2206344., 2215068.,
      2223792., 2234784., 2243520., 2252256., 2260992., 2132076., 2140824.,
      2149572., 2158320., 2169240., 2178000., 2186760., 2195520., 2206500.,
      2215272., 2224044., 2232816., 2243856., 2252640., 2261424., 2270208.,
      2355420., 2364600., 2373780., 2382960., 2394504., 2403696., 2412888.,
      2422080., 2433684., 2442888., 2452092., 2461296., 2472960., 2482176.,
      2491392., 2500608., 2364684., 2373912., 2383140., 2392368., 2403960.,
      2413200., 2422440., 2431680., 2443332., 2452584., 2461836., 2471088.,
      2482800., 2492064., 2501328., 2510592., 3424890., 3438660., 3452430.,
      3466200., 3483372., 3497160., 3510948., 3524736., 3541998., 3555804.,
      3569610., 3583416., 3600768., 3614592., 3628416., 3642240., 3438210.,
      3452052., 3465894., 3479736., 3496980., 3510840., 3524700., 3538560.,
      3555894., 3569772., 3583650., 3597528., 3614952., 3628848., 3642744.,
      3656640., 3451530., 3465444., 3479358., 3493272., 3510588., 3524520.,
      3538452., 3552384., 3569790., 3583740., 3597690., 3611640., 3629136.,
      3643104., 3657072., 3671040., 2217036., 2226264., 2235492., 2244720.,
      2256120., 2265360., 2274600., 2283840., 2295300., 2304552., 2313804.,
      2323056., 2334576., 2343840., 2353104., 2362368., 2225532., 2234808.,
      2244084., 2253360., 2264808., 2274096., 2283384., 2292672., 2304180.,
      2313480., 2322780., 2332080., 2343648., 2352960., 2362272., 2371584.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      885980.,  892952.,  899924.,  906896.,  914984.,  921968.,  928952.,
      935936.,  944084.,  951080.,  958076.,  965072.,  973280.,  980288.,
      987296.,  994304.,  890252.,  897272.,  904292.,  911312.,  919448.,
      926480.,  933512.,  940544.,  948740.,  955784.,  962828.,  969872.,
      978128.,  985184.,  992240.,  999296.,  894524.,  901592.,  908660.,
      915728.,  923912.,  930992.,  938072.,  945152.,  953396.,  960488.,
      967580.,  974672.,  982976.,  990080.,  997184.,  1004288., 898796.,
      905912.,  913028.,  920144.,  928376.,  935504.,  942632.,  949760.,
      958052.,  965192.,  972332.,  979472.,  987824.,  994976.,  1002128.,
      1009280., 903068.,  910232.,  917396.,  924560.,  932840.,  940016.,
      947192.,  954368.,  962708.,  969896.,  977084.,  984272.,  992672.,
      999872.,  1007072., 1014272., 907340.,  914552.,  921764.,  928976.,
      937304.,  944528.,  951752.,  958976.,  967364.,  974600.,  981836.,
      989072.,  997520.,  1004768., 1012016., 1019264., 911612.,  918872.,
      926132.,  933392.,  941768.,  949040.,  956312.,  963584.,  972020.,
      979304.,  986588.,  993872.,  1002368., 1009664., 1016960., 1024256.,
      932972.,  940472.,  947972.,  955472.,  964088.,  971600.,  979112.,
      986624.,  995300.,  1002824., 1010348., 1017872., 1026608., 1034144.,
      1041680., 1049216., 937244.,  944792.,  952340.,  959888.,  968552.,
      976112.,  983672.,  991232.,  999956.,  1007528., 1015100., 1022672.,
      1031456., 1039040., 1046624., 1054208., 941516.,  949112.,  956708.,
      964304.,  973016.,  980624.,  988232.,  995840.,  1004612., 1012232.,
      1019852., 1027472., 1036304., 1043936., 1051568., 1059200., 945788.,
      953432.,  961076.,  968720.,  977480.,  985136.,  992792.,  1000448.,
      1009268., 1016936., 1024604., 1032272., 1041152., 1048832., 1056512.,
      1064192., 950060.,  957752.,  965444.,  973136.,  981944.,  989648.,
      997352.,  1005056., 1013924., 1021640., 1029356., 1037072., 1046000.,
      1053728., 1061456., 1069184., 954332.,  962072.,  969812.,  977552.,
      986408.,  994160.,  1001912., 1009664., 1018580., 1026344., 1034108.,
      1041872., 1050848., 1058624., 1066400., 1074176., 958604.,  966392.,
      974180.,  981968.,  990872.,  998672.,  1006472., 1014272., 1023236.,
      1031048., 1038860., 1046672., 1055696., 1063520., 1071344., 1079168.,
      979964.,  987992.,  996020.,  1004048., 1013192., 1021232., 1029272.,
      1037312., 1046516., 1054568., 1062620., 1070672., 1079936., 1088000.,
      1096064., 1104128., 984236.,  992312.,  1000388., 1008464., 1017656.,
      1025744., 1033832., 1041920., 1051172., 1059272., 1067372., 1075472.,
      1084784., 1092896., 1101008., 1109120., 988508.,  996632.,  1004756.,
      1012880., 1022120., 1030256., 1038392., 1046528., 1055828., 1063976.,
      1072124., 1080272., 1089632., 1097792., 1105952., 1114112., 992780.,
      1000952., 1009124., 1017296., 1026584., 1034768., 1042952., 1051136.,
      1060484., 1068680., 1076876., 1085072., 1094480., 1102688., 1110896.,
      1119104., 997052.,  1005272., 1013492., 1021712., 1031048., 1039280.,
      1047512., 1055744., 1065140., 1073384., 1081628., 1089872., 1099328.,
      1107584., 1115840., 1124096., 1001324., 1009592., 1017860., 1026128.,
      1035512., 1043792., 1052072., 1060352., 1069796., 1078088., 1086380.,
      1094672., 1104176., 1112480., 1120784., 1129088., 1005596., 1013912.,
      1022228., 1030544., 1039976., 1048304., 1056632., 1064960., 1074452.,
      1082792., 1091132., 1099472., 1109024., 1117376., 1125728., 1134080.,
      1026956., 1035512., 1044068., 1052624., 1062296., 1070864., 1079432.,
      1088000., 1097732., 1106312., 1114892., 1123472., 1133264., 1141856.,
      1150448., 1159040., 1031228., 1039832., 1048436., 1057040., 1066760.,
      1075376., 1083992., 1092608., 1102388., 1111016., 1119644., 1128272.,
      1138112., 1146752., 1155392., 1164032., 1035500., 1044152., 1052804.,
      1061456., 1071224., 1079888., 1088552., 1097216., 1107044., 1115720.,
      1124396., 1133072., 1142960., 1151648., 1160336., 1169024., 1039772.,
      1048472., 1057172., 1065872., 1075688., 1084400., 1093112., 1101824.,
      1111700., 1120424., 1129148., 1137872., 1147808., 1156544., 1165280.,
      1174016., 1044044., 1052792., 1061540., 1070288., 1080152., 1088912.,
      1097672., 1106432., 1116356., 1125128., 1133900., 1142672., 1152656.,
      1161440., 1170224., 1179008., 1048316., 1057112., 1065908., 1074704.,
      1084616., 1093424., 1102232., 1111040., 1121012., 1129832., 1138652.,
      1147472., 1157504., 1166336., 1175168., 1184000., 1052588., 1061432.,
      1070276., 1079120., 1089080., 1097936., 1106792., 1115648., 1125668.,
      1134536., 1143404., 1152272., 1162352., 1171232., 1180112., 1188992.,
      1073948., 1083032., 1092116., 1101200., 1111400., 1120496., 1129592.,
      1138688., 1148948., 1158056., 1167164., 1176272., 1186592., 1195712.,
      1204832., 1213952., 1078220., 1087352., 1096484., 1105616., 1115864.,
      1125008., 1134152., 1143296., 1153604., 1162760., 1171916., 1181072.,
      1191440., 1200608., 1209776., 1218944., 1082492., 1091672., 1100852.,
      1110032., 1120328., 1129520., 1138712., 1147904., 1158260., 1167464.,
      1176668., 1185872., 1196288., 1205504., 1214720., 1223936., 1086764.,
      1095992., 1105220., 1114448., 1124792., 1134032., 1143272., 1152512.,
      1162916., 1172168., 1181420., 1190672., 1201136., 1210400., 1219664.,
      1228928., 1091036., 1100312., 1109588., 1118864., 1129256., 1138544.,
      1147832., 1157120., 1167572., 1176872., 1186172., 1195472., 1205984.,
      1215296., 1224608., 1233920., 1095308., 1104632., 1113956., 1123280.,
      1133720., 1143056., 1152392., 1161728., 1172228., 1181576., 1190924.,
      1200272., 1210832., 1220192., 1229552., 1238912., 1099580., 1108952.,
      1118324., 1127696., 1138184., 1147568., 1156952., 1166336., 1176884.,
      1186280., 1195676., 1205072., 1215680., 1225088., 1234496., 1243904.,
      1120940., 1130552., 1140164., 1149776., 1160504., 1170128., 1179752.,
      1189376., 1200164., 1209800., 1219436., 1229072., 1239920., 1249568.,
      1259216., 1268864., 1125212., 1134872., 1144532., 1154192., 1164968.,
      1174640., 1184312., 1193984., 1204820., 1214504., 1224188., 1233872.,
      1244768., 1254464., 1264160., 1273856., 1129484., 1139192., 1148900.,
      1158608., 1169432., 1179152., 1188872., 1198592., 1209476., 1219208.,
      1228940., 1238672., 1249616., 1259360., 1269104., 1278848., 1133756.,
      1143512., 1153268., 1163024., 1173896., 1183664., 1193432., 1203200.,
      1214132., 1223912., 1233692., 1243472., 1254464., 1264256., 1274048.,
      1283840., 1138028., 1147832., 1157636., 1167440., 1178360., 1188176.,
      1197992., 1207808., 1218788., 1228616., 1238444., 1248272., 1259312.,
      1269152., 1278992., 1288832., 1142300., 1152152., 1162004., 1171856.,
      1182824., 1192688., 1202552., 1212416., 1223444., 1233320., 1243196.,
      1253072., 1264160., 1274048., 1283936., 1293824., 1146572., 1156472.,
      1166372., 1176272., 1187288., 1197200., 1207112., 1217024., 1228100.,
      1238024., 1247948., 1257872., 1269008., 1278944., 1288880., 1298816.,
      1167932., 1178072., 1188212., 1198352., 1209608., 1219760., 1229912.,
      1240064., 1251380., 1261544., 1271708., 1281872., 1293248., 1303424.,
      1313600., 1323776., 1172204., 1182392., 1192580., 1202768., 1214072.,
      1224272., 1234472., 1244672., 1256036., 1266248., 1276460., 1286672.,
      1298096., 1308320., 1318544., 1328768., 1176476., 1186712., 1196948.,
      1207184., 1218536., 1228784., 1239032., 1249280., 1260692., 1270952.,
      1281212., 1291472., 1302944., 1313216., 1323488., 1333760., 1180748.,
      1191032., 1201316., 1211600., 1223000., 1233296., 1243592., 1253888.,
      1265348., 1275656., 1285964., 1296272., 1307792., 1318112., 1328432.,
      1338752., 1185020., 1195352., 1205684., 1216016., 1227464., 1237808.,
      1248152., 1258496., 1270004., 1280360., 1290716., 1301072., 1312640.,
      1323008., 1333376., 1343744., 1189292., 1199672., 1210052., 1220432.,
      1231928., 1242320., 1252712., 1263104., 1274660., 1285064., 1295468.,
      1305872., 1317488., 1327904., 1338320., 1348736., 1193564., 1203992.,
      1214420., 1224848., 1236392., 1246832., 1257272., 1267712., 1279316.,
      1289768., 1300220., 1310672., 1322336., 1332800., 1343264., 1353728.};
  const std::array<int, 4> in_shape = {{3, 11, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      45660., 66567.,  66846.,  67125.,  67404.,  43608., 43788.,
      47964., 69915.,  70194.,  70473.,  70752.,  45768., 45948.,
      64548., 93978.,  94356.,  94734.,  95112.,  61443., 61686.,
      67680., 98514.,  98892.,  99270.,  99648.,  64359., 64602.,
      70812., 103050., 103428., 103806., 104184., 67275., 67518.,
      40836., 59277.,  59502.,  59727.,  59952.,  38604., 38748.,
      42708., 61977.,  62202.,  62427.,  62652.,  40332., 40476.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      16926., 17004., 17082., 17160., 17238., 17316., 17394., 17862., 17940.,
      18018., 18096., 18174., 18252., 18330., 18798., 18876., 18954., 19032.,
      19110., 19188., 19266., 19734., 19812., 19890., 19968., 20046., 20124.,
      20202., 20670., 20748., 20826., 20904., 20982., 21060., 21138., 21606.,
      21684., 21762., 21840., 21918., 21996., 22074., 22542., 22620., 22698.,
      22776., 22854., 22932., 23010.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      89088.,  91320.,  129804., 133134., 130344., 133692., 130884., 134250.,
      131424., 134808., 84972.,  87216.,  85320.,  87576.,  93552.,  95928.,
      136284., 139830., 136824., 140388., 137364., 140946., 137904., 141504.,
      89148.,  91536.,  89496.,  91896.,  125748., 129096., 182961., 187956.,
      183690., 188712., 184419., 189468., 185148., 190224., 119520., 122886.,
      119988., 123372., 131796., 135360., 191709., 197028., 192438., 197784.,
      193167., 198540., 193896., 199296., 125136., 128718., 125604., 129204.,
      137844., 141624., 200457., 206100., 201186., 206856., 201915., 207612.,
      202644., 208368., 130752., 134550., 131220., 135036., 79296.,  81672.,
      115008., 118554., 115440., 119004., 115872., 119454., 116304., 119904.,
      74820.,  77208.,  75096.,  77496.,  82896.,  85416.,  120192., 123954.,
      120624., 124404., 121056., 124854., 121488., 125304., 78132.,  80664.,
      78408.,  80952.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      31944., 33852., 32088., 34008., 32232., 34164., 32376., 34320., 32520.,
      34476., 32664., 34632., 32808., 34788., 33672., 35724., 33816., 35880.,
      33960., 36036., 34104., 36192., 34248., 36348., 34392., 36504., 34536.,
      36660., 35400., 37596., 35544., 37752., 35688., 37908., 35832., 38064.,
      35976., 38220., 36120., 38376., 36264., 38532., 37128., 39468., 37272.,
      39624., 37416., 39780., 37560., 39936., 37704., 40092., 37848., 40248.,
      37992., 40404., 38856., 41340., 39000., 41496., 39144., 41652., 39288.,
      41808., 39432., 41964., 39576., 42120., 39720., 42276., 40584., 43212.,
      40728., 43368., 40872., 43524., 41016., 43680., 41160., 43836., 41304.,
      43992., 41448., 44148., 42312., 45084., 42456., 45240., 42600., 45396.,
      42744., 45552., 42888., 45708., 43032., 45864., 43176., 46020.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      175944., 178176., 180408., 182640., 256278., 259608., 262938., 266268.,
      257340., 260688., 264036., 267384., 258402., 261768., 265134., 268500.,
      259464., 262848., 266232., 269616., 167700., 169944., 172188., 174432.,
      168384., 170640., 172896., 175152., 184728., 187104., 189480., 191856.,
      269022., 272568., 276114., 279660., 270084., 273648., 277212., 280776.,
      271146., 274728., 278310., 281892., 272208., 275808., 279408., 283008.,
      175908., 178296., 180684., 183072., 176592., 178992., 181392., 183792.,
      248148., 251496., 254844., 258192., 360927., 365922., 370917., 375912.,
      362358., 367380., 372402., 377424., 363789., 368838., 373887., 378936.,
      365220., 370296., 375372., 380448., 235674., 239040., 242406., 245772.,
      236592., 239976., 243360., 246744., 260028., 263592., 267156., 270720.,
      378099., 383418., 388737., 394056., 379530., 384876., 390222., 395568.,
      380961., 386334., 391707., 397080., 382392., 387792., 393192., 398592.,
      246690., 250272., 253854., 257436., 247608., 251208., 254808., 258408.,
      271908., 275688., 279468., 283248., 395271., 400914., 406557., 412200.,
      396702., 402372., 408042., 413712., 398133., 403830., 409527., 415224.,
      399564., 405288., 411012., 416736., 257706., 261504., 265302., 269100.,
      258624., 262440., 266256., 270072., 156216., 158592., 160968., 163344.,
      226470., 230016., 233562., 237108., 227316., 230880., 234444., 238008.,
      228162., 231744., 235326., 238908., 229008., 232608., 236208., 239808.,
      147252., 149640., 152028., 154416., 147792., 150192., 152592., 154992.,
      163272., 165792., 168312., 170832., 236622., 240384., 244146., 247908.,
      237468., 241248., 245028., 248808., 238314., 242112., 245910., 249708.,
      239160., 242976., 246792., 250608., 153732., 156264., 158796., 161328.,
      154272., 156816., 159360., 161904.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      61980., 63888., 65796., 67704., 62256., 64176., 66096., 68016., 62532.,
      64464., 66396., 68328., 62808., 64752., 66696., 68640., 63084., 65040.,
      66996., 68952., 63360., 65328., 67296., 69264., 63636., 65616., 67596.,
      69576., 65292., 67344., 69396., 71448., 65568., 67632., 69696., 71760.,
      65844., 67920., 69996., 72072., 66120., 68208., 70296., 72384., 66396.,
      68496., 70596., 72696., 66672., 68784., 70896., 73008., 66948., 69072.,
      71196., 73320., 68604., 70800., 72996., 75192., 68880., 71088., 73296.,
      75504., 69156., 71376., 73596., 75816., 69432., 71664., 73896., 76128.,
      69708., 71952., 74196., 76440., 69984., 72240., 74496., 76752., 70260.,
      72528., 74796., 77064., 71916., 74256., 76596., 78936., 72192., 74544.,
      76896., 79248., 72468., 74832., 77196., 79560., 72744., 75120., 77496.,
      79872., 73020., 75408., 77796., 80184., 73296., 75696., 78096., 80496.,
      73572., 75984., 78396., 80808., 75228., 77712., 80196., 82680., 75504.,
      78000., 80496., 82992., 75780., 78288., 80796., 83304., 76056., 78576.,
      81096., 83616., 76332., 78864., 81396., 83928., 76608., 79152., 81696.,
      84240., 76884., 79440., 81996., 84552., 78540., 81168., 83796., 86424.,
      78816., 81456., 84096., 86736., 79092., 81744., 84396., 87048., 79368.,
      82032., 84696., 87360., 79644., 82320., 84996., 87672., 79920., 82608.,
      85296., 87984., 80196., 82896., 85596., 88296., 81852., 84624., 87396.,
      90168., 82128., 84912., 87696., 90480., 82404., 85200., 87996., 90792.,
      82680., 85488., 88296., 91104., 82956., 85776., 88596., 91416., 83232.,
      86064., 88896., 91728., 83508., 86352., 89196., 92040.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      177804., 182640., 259068., 266268., 260148., 267384., 261228., 268500.,
      262308., 269616., 169596., 174432., 170292., 175152., 186732., 191856.,
      272028., 279660., 273108., 280776., 274188., 281892., 275268., 283008.,
      177948., 183072., 178644., 183792., 250992., 258192., 365193., 375912.,
      366651., 377424., 368109., 378936., 369567., 380448., 238572., 245772.,
      239508., 246744., 263088., 270720., 382689., 394056., 384147., 395568.,
      385605., 397080., 387063., 398592., 249804., 257436., 250740., 258408.,
      275184., 283248., 400185., 412200., 401643., 413712., 403101., 415224.,
      404559., 416736., 261036., 269100., 261972., 270072., 158292., 163344.,
      229584., 237108., 230448., 238008., 231312., 238908., 232176., 239808.,
      149364., 154416., 149916., 154992., 165492., 170832., 239952., 247908.,
      240816., 248808., 241680., 249708., 242544., 250608., 155988., 161328.,
      156540., 161904.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      63744., 67704., 64032., 68016., 64320., 68328., 64608., 68640., 64896.,
      68952., 65184., 69264., 65472., 69576., 67200., 71448., 67488., 71760.,
      67776., 72072., 68064., 72384., 68352., 72696., 68640., 73008., 68928.,
      73320., 70656., 75192., 70944., 75504., 71232., 75816., 71520., 76128.,
      71808., 76440., 72096., 76752., 72384., 77064., 74112., 78936., 74400.,
      79248., 74688., 79560., 74976., 79872., 75264., 80184., 75552., 80496.,
      75840., 80808., 77568., 82680., 77856., 82992., 78144., 83304., 78432.,
      83616., 78720., 83928., 79008., 84240., 79296., 84552., 81024., 86424.,
      81312., 86736., 81600., 87048., 81888., 87360., 82176., 87672., 82464.,
      87984., 82752., 88296., 84480., 90168., 84768., 90480., 85056., 90792.,
      85344., 91104., 85632., 91416., 85920., 91728., 86208., 92040.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      351156., 355608., 360816., 365280., 511494., 518136., 525876., 532536.,
      513618., 520296., 528072., 534768., 515742., 522456., 530268., 537000.,
      517866., 524616., 532464., 539232., 334716., 339192., 344376., 348864.,
      336084., 340584., 345792., 350304., 368724., 373464., 378960., 383712.,
      536982., 544056., 552228., 559320., 539106., 546216., 554424., 561552.,
      541230., 548376., 556620., 563784., 543354., 550536., 558816., 566016.,
      351132., 355896., 361368., 366144., 352500., 357288., 362784., 367584.,
      495306., 501984., 509688., 516384., 720423., 730386., 741834., 751824.,
      723285., 733302., 744804., 754848., 726147., 736218., 747774., 757872.,
      729009., 739134., 750744., 760896., 470430., 477144., 484812., 491544.,
      472266., 479016., 486720., 493488., 519066., 526176., 534312., 541440.,
      754767., 765378., 777474., 788112., 757629., 768294., 780444., 791136.,
      760491., 771210., 783414., 794160., 763353., 774126., 786384., 797184.,
      492462., 499608., 507708., 514872., 494298., 501480., 509616., 516816.,
      542826., 550368., 558936., 566496., 789111., 800370., 813114., 824400.,
      791973., 803286., 816084., 827424., 794835., 806202., 819054., 830448.,
      797697., 809118., 822024., 833472., 514494., 522072., 530604., 538200.,
      516330., 523944., 532512., 540144., 311844., 316584., 321936., 326688.,
      452094., 459168., 467124., 474216., 453786., 460896., 468888., 476016.,
      455478., 462624., 470652., 477816., 457170., 464352., 472416., 479616.,
      293964., 298728., 304056., 308832., 295044., 299832., 305184., 309984.,
      325956., 330984., 336624., 341664., 472398., 479904., 488292., 495816.,
      474090., 481632., 490056., 497616., 475782., 483360., 491820., 499416.,
      477474., 485088., 493584., 501216., 306924., 311976., 317592., 322656.,
      308004., 313080., 318720., 323808.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      123684., 127488., 131592., 135408., 124236., 128064., 132192., 136032.,
      124788., 128640., 132792., 136656., 125340., 129216., 133392., 137280.,
      125892., 129792., 133992., 137904., 126444., 130368., 134592., 138528.,
      126996., 130944., 135192., 139152., 130308., 134400., 138792., 142896.,
      130860., 134976., 139392., 143520., 131412., 135552., 139992., 144144.,
      131964., 136128., 140592., 144768., 132516., 136704., 141192., 145392.,
      133068., 137280., 141792., 146016., 133620., 137856., 142392., 146640.,
      136932., 141312., 145992., 150384., 137484., 141888., 146592., 151008.,
      138036., 142464., 147192., 151632., 138588., 143040., 147792., 152256.,
      139140., 143616., 148392., 152880., 139692., 144192., 148992., 153504.,
      140244., 144768., 149592., 154128., 143556., 148224., 153192., 157872.,
      144108., 148800., 153792., 158496., 144660., 149376., 154392., 159120.,
      145212., 149952., 154992., 159744., 145764., 150528., 155592., 160368.,
      146316., 151104., 156192., 160992., 146868., 151680., 156792., 161616.,
      150180., 155136., 160392., 165360., 150732., 155712., 160992., 165984.,
      151284., 156288., 161592., 166608., 151836., 156864., 162192., 167232.,
      152388., 157440., 162792., 167856., 152940., 158016., 163392., 168480.,
      153492., 158592., 163992., 169104., 156804., 162048., 167592., 172848.,
      157356., 162624., 168192., 173472., 157908., 163200., 168792., 174096.,
      158460., 163776., 169392., 174720., 159012., 164352., 169992., 175344.,
      159564., 164928., 170592., 175968., 160116., 165504., 171192., 176592.,
      163428., 168960., 174792., 180336., 163980., 169536., 175392., 180960.,
      164532., 170112., 175992., 181584., 165084., 170688., 176592., 182208.,
      165636., 171264., 177192., 182832., 166188., 171840., 177792., 183456.,
      166740., 172416., 178392., 184080.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      697860.,  702312.,  706764.,  711216.,  717168.,  721632.,  726096.,
      730560.,  1016346., 1022988., 1029630., 1036272., 1045092., 1051752.,
      1058412., 1065072., 1020558., 1027236., 1033914., 1040592., 1049448.,
      1056144., 1062840., 1069536., 1024770., 1031484., 1038198., 1044912.,
      1053804., 1060536., 1067268., 1074000., 1028982., 1035732., 1042482.,
      1049232., 1058160., 1064928., 1071696., 1078464., 664956.,  669432.,
      673908.,  678384.,  684264.,  688752.,  693240.,  697728.,  667668.,
      672168.,  676668.,  681168.,  687072.,  691584.,  696096.,  700608.,
      732708.,  737448.,  742188.,  746928.,  753168.,  757920.,  762672.,
      767424.,  1066890., 1073964., 1081038., 1088112., 1097364., 1104456.,
      1111548., 1118640., 1071102., 1078212., 1085322., 1092432., 1101720.,
      1108848., 1115976., 1123104., 1075314., 1082460., 1089606., 1096752.,
      1106076., 1113240., 1120404., 1127568., 1079526., 1086708., 1093890.,
      1101072., 1110432., 1117632., 1124832., 1132032., 697500.,  702264.,
      707028.,  711792.,  717960.,  722736.,  727512.,  732288.,  700212.,
      705000.,  709788.,  714576.,  720768.,  725568.,  730368.,  735168.,
      983934.,  990612.,  997290.,  1003968., 1012680., 1019376., 1026072.,
      1032768., 1430883., 1440846., 1450809., 1460772., 1473678., 1483668.,
      1493658., 1503648., 1436553., 1446570., 1456587., 1466604., 1479564.,
      1489608., 1499652., 1509696., 1442223., 1452294., 1462365., 1472436.,
      1485450., 1495548., 1505646., 1515744., 1447893., 1458018., 1468143.,
      1478268., 1491336., 1501488., 1511640., 1521792., 934146.,  940860.,
      947574.,  954288.,  962892.,  969624.,  976356.,  983088.,  937782.,
      944532.,  951282.,  958032.,  966672.,  973440.,  980208.,  986976.,
      1031022., 1038132., 1045242., 1052352., 1061496., 1068624., 1075752.,
      1082880., 1498923., 1509534., 1520145., 1530756., 1544310., 1554948.,
      1565586., 1576224., 1504593., 1515258., 1525923., 1536588., 1550196.,
      1560888., 1571580., 1582272., 1510263., 1520982., 1531701., 1542420.,
      1556082., 1566828., 1577574., 1588320., 1515933., 1526706., 1537479.,
      1548252., 1561968., 1572768., 1583568., 1594368., 977778.,  984924.,
      992070.,  999216.,  1008252., 1015416., 1022580., 1029744., 981414.,
      988596.,  995778.,  1002960., 1012032., 1019232., 1026432., 1033632.,
      1078110., 1085652., 1093194., 1100736., 1110312., 1117872., 1125432.,
      1132992., 1566963., 1578222., 1589481., 1600740., 1614942., 1626228.,
      1637514., 1648800., 1572633., 1583946., 1595259., 1606572., 1620828.,
      1632168., 1643508., 1654848., 1578303., 1589670., 1601037., 1612404.,
      1626714., 1638108., 1649502., 1660896., 1583973., 1595394., 1606815.,
      1618236., 1632600., 1644048., 1655496., 1666944., 1021410., 1028988.,
      1036566., 1044144., 1053612., 1061208., 1068804., 1076400., 1025046.,
      1032660., 1040274., 1047888., 1057392., 1065024., 1072656., 1080288.,
      618948.,  623688.,  628428.,  633168.,  639120.,  643872.,  648624.,
      653376.,  897114.,  904188.,  911262.,  918336.,  927156.,  934248.,
      941340.,  948432.,  900462.,  907572.,  914682.,  921792.,  930648.,
      937776.,  944904.,  952032.,  903810.,  910956.,  918102.,  925248.,
      934140.,  941304.,  948468.,  955632.,  907158.,  914340.,  921522.,
      928704.,  937632.,  944832.,  952032.,  959232.,  583164.,  587928.,
      592692.,  597456.,  603336.,  608112.,  612888.,  617664.,  585300.,
      590088.,  594876.,  599664.,  605568.,  610368.,  615168.,  619968.,
      646884.,  651912.,  656940.,  661968.,  668208.,  673248.,  678288.,
      683328.,  937290.,  944796.,  952302.,  959808.,  969060.,  976584.,
      984108.,  991632.,  940638.,  948180.,  955722.,  963264.,  972552.,
      980112.,  987672.,  995232.,  943986.,  951564.,  959142.,  966720.,
      976044.,  983640.,  991236.,  998832.,  947334.,  954948.,  962562.,
      970176.,  979536.,  987168.,  994800.,  1002432., 608796.,  613848.,
      618900.,  623952.,  630120.,  635184.,  640248.,  645312.,  610932.,
      616008.,  621084.,  626160.,  632352.,  637440.,  642528.,  647616.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      243564., 247368., 251172., 254976., 259368., 263184., 267000., 270816.,
      244644., 248472., 252300., 256128., 260544., 264384., 268224., 272064.,
      245724., 249576., 253428., 257280., 261720., 265584., 269448., 273312.,
      246804., 250680., 254556., 258432., 262896., 266784., 270672., 274560.,
      247884., 251784., 255684., 259584., 264072., 267984., 271896., 275808.,
      248964., 252888., 256812., 260736., 265248., 269184., 273120., 277056.,
      250044., 253992., 257940., 261888., 266424., 270384., 274344., 278304.,
      256524., 260616., 264708., 268800., 273480., 277584., 281688., 285792.,
      257604., 261720., 265836., 269952., 274656., 278784., 282912., 287040.,
      258684., 262824., 266964., 271104., 275832., 279984., 284136., 288288.,
      259764., 263928., 268092., 272256., 277008., 281184., 285360., 289536.,
      260844., 265032., 269220., 273408., 278184., 282384., 286584., 290784.,
      261924., 266136., 270348., 274560., 279360., 283584., 287808., 292032.,
      263004., 267240., 271476., 275712., 280536., 284784., 289032., 293280.,
      269484., 273864., 278244., 282624., 287592., 291984., 296376., 300768.,
      270564., 274968., 279372., 283776., 288768., 293184., 297600., 302016.,
      271644., 276072., 280500., 284928., 289944., 294384., 298824., 303264.,
      272724., 277176., 281628., 286080., 291120., 295584., 300048., 304512.,
      273804., 278280., 282756., 287232., 292296., 296784., 301272., 305760.,
      274884., 279384., 283884., 288384., 293472., 297984., 302496., 307008.,
      275964., 280488., 285012., 289536., 294648., 299184., 303720., 308256.,
      282444., 287112., 291780., 296448., 301704., 306384., 311064., 315744.,
      283524., 288216., 292908., 297600., 302880., 307584., 312288., 316992.,
      284604., 289320., 294036., 298752., 304056., 308784., 313512., 318240.,
      285684., 290424., 295164., 299904., 305232., 309984., 314736., 319488.,
      286764., 291528., 296292., 301056., 306408., 311184., 315960., 320736.,
      287844., 292632., 297420., 302208., 307584., 312384., 317184., 321984.,
      288924., 293736., 298548., 303360., 308760., 313584., 318408., 323232.,
      295404., 300360., 305316., 310272., 315816., 320784., 325752., 330720.,
      296484., 301464., 306444., 311424., 316992., 321984., 326976., 331968.,
      297564., 302568., 307572., 312576., 318168., 323184., 328200., 333216.,
      298644., 303672., 308700., 313728., 319344., 324384., 329424., 334464.,
      299724., 304776., 309828., 314880., 320520., 325584., 330648., 335712.,
      300804., 305880., 310956., 316032., 321696., 326784., 331872., 336960.,
      301884., 306984., 312084., 317184., 322872., 327984., 333096., 338208.,
      308364., 313608., 318852., 324096., 329928., 335184., 340440., 345696.,
      309444., 314712., 319980., 325248., 331104., 336384., 341664., 346944.,
      310524., 315816., 321108., 326400., 332280., 337584., 342888., 348192.,
      311604., 316920., 322236., 327552., 333456., 338784., 344112., 349440.,
      312684., 318024., 323364., 328704., 334632., 339984., 345336., 350688.,
      313764., 319128., 324492., 329856., 335808., 341184., 346560., 351936.,
      314844., 320232., 325620., 331008., 336984., 342384., 347784., 353184.,
      321324., 326856., 332388., 337920., 344040., 349584., 355128., 360672.,
      322404., 327960., 333516., 339072., 345216., 350784., 356352., 361920.,
      323484., 329064., 334644., 340224., 346392., 351984., 357576., 363168.,
      324564., 330168., 335772., 341376., 347568., 353184., 358800., 364416.,
      325644., 331272., 336900., 342528., 348744., 354384., 360024., 365664.,
      326724., 332376., 338028., 343680., 349920., 355584., 361248., 366912.,
      327804., 333480., 339156., 344832., 351096., 356784., 362472., 368160.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      701580.,  711216.,  720876.,  730560.,  1021926., 1036272., 1050654.,
      1065072., 1026174., 1040592., 1055046., 1069536., 1030422., 1044912.,
      1059438., 1074000., 1034670., 1049232., 1063830., 1078464., 668748.,
      678384.,  688044.,  697728.,  671484.,  681168.,  690876.,  700608.,
      736716.,  746928.,  757164.,  767424.,  1072902., 1088112., 1103358.,
      1118640., 1077150., 1092432., 1107750., 1123104., 1081398., 1096752.,
      1112142., 1127568., 1085646., 1101072., 1116534., 1132032., 701580.,
      711792.,  722028.,  732288.,  704316.,  714576.,  724860.,  735168.,
      989622.,  1003968., 1018350., 1032768., 1439415., 1460772., 1482183.,
      1503648., 1445139., 1466604., 1488123., 1509696., 1450863., 1472436.,
      1494063., 1515744., 1456587., 1478268., 1500003., 1521792., 939942.,
      954288.,  968670.,  983088.,  943614.,  958032.,  972486.,  986976.,
      1037142., 1052352., 1067598., 1082880., 1508103., 1530756., 1553463.,
      1576224., 1513827., 1536588., 1559403., 1582272., 1519551., 1542420.,
      1565343., 1588320., 1525275., 1548252., 1571283., 1594368., 984006.,
      999216.,  1014462., 1029744., 987678.,  1002960., 1018278., 1033632.,
      1084662., 1100736., 1116846., 1132992., 1576791., 1600740., 1624743.,
      1648800., 1582515., 1606572., 1630683., 1654848., 1588239., 1612404.,
      1636623., 1660896., 1593963., 1618236., 1642563., 1666944., 1028070.,
      1044144., 1060254., 1076400., 1031742., 1047888., 1064070., 1080288.,
      623100.,  633168.,  643260.,  653376.,  903342.,  918336.,  933366.,
      948432.,  906726.,  921792.,  936894.,  952032.,  910110.,  925248.,
      940422.,  955632.,  913494.,  928704.,  943950.,  959232.,  587388.,
      597456.,  607548.,  617664.,  589548.,  599664.,  609804.,  619968.,
      651324.,  661968.,  672636.,  683328.,  943950.,  959808.,  975702.,
      991632.,  947334.,  963264.,  979230.,  995232.,  950718.,  966720.,
      982758.,  998832.,  954102.,  970176.,  986286.,  1002432., 613308.,
      623952.,  634620.,  645312.,  615468.,  626160.,  636876.,  647616.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      247092., 254976., 262884., 270816., 248196., 256128., 264084., 272064.,
      249300., 257280., 265284., 273312., 250404., 258432., 266484., 274560.,
      251508., 259584., 267684., 275808., 252612., 260736., 268884., 277056.,
      253716., 261888., 270084., 278304., 260340., 268800., 277284., 285792.,
      261444., 269952., 278484., 287040., 262548., 271104., 279684., 288288.,
      263652., 272256., 280884., 289536., 264756., 273408., 282084., 290784.,
      265860., 274560., 283284., 292032., 266964., 275712., 284484., 293280.,
      273588., 282624., 291684., 300768., 274692., 283776., 292884., 302016.,
      275796., 284928., 294084., 303264., 276900., 286080., 295284., 304512.,
      278004., 287232., 296484., 305760., 279108., 288384., 297684., 307008.,
      280212., 289536., 298884., 308256., 286836., 296448., 306084., 315744.,
      287940., 297600., 307284., 316992., 289044., 298752., 308484., 318240.,
      290148., 299904., 309684., 319488., 291252., 301056., 310884., 320736.,
      292356., 302208., 312084., 321984., 293460., 303360., 313284., 323232.,
      300084., 310272., 320484., 330720., 301188., 311424., 321684., 331968.,
      302292., 312576., 322884., 333216., 303396., 313728., 324084., 334464.,
      304500., 314880., 325284., 335712., 305604., 316032., 326484., 336960.,
      306708., 317184., 327684., 338208., 313332., 324096., 334884., 345696.,
      314436., 325248., 336084., 346944., 315540., 326400., 337284., 348192.,
      316644., 327552., 338484., 349440., 317748., 328704., 339684., 350688.,
      318852., 329856., 340884., 351936., 319956., 331008., 342084., 353184.,
      326580., 337920., 349284., 360672., 327684., 339072., 350484., 361920.,
      328788., 340224., 351684., 363168., 329892., 341376., 352884., 364416.,
      330996., 342528., 354084., 365664., 332100., 343680., 355284., 366912.,
      333204., 344832., 356484., 368160.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1394268., 1403160., 1413528., 1422432., 1432836., 1441752., 1452192.,
      1461120., 2030586., 2043852., 2059260., 2072544., 2088006., 2101308.,
      2116824., 2130144., 2039010., 2052348., 2067828., 2081184., 2096718.,
      2110092., 2125680., 2139072., 2047434., 2060844., 2076396., 2089824.,
      2105430., 2118876., 2134536., 2148000., 2055858., 2069340., 2084964.,
      2098464., 2114142., 2127660., 2143392., 2156928., 1328556., 1337496.,
      1347816., 1356768., 1367124., 1376088., 1386480., 1395456., 1333980.,
      1342968., 1353336., 1362336., 1372740., 1381752., 1392192., 1401216.,
      1463964., 1473432., 1484376., 1493856., 1504836., 1514328., 1525344.,
      1534848., 2131674., 2145804., 2162076., 2176224., 2192550., 2206716.,
      2223096., 2237280., 2140098., 2154300., 2170644., 2184864., 2201262.,
      2215500., 2231952., 2246208., 2148522., 2162796., 2179212., 2193504.,
      2209974., 2224284., 2240808., 2255136., 2156946., 2171292., 2187780.,
      2202144., 2218686., 2233068., 2249664., 2264064., 1393644., 1403160.,
      1414056., 1423584., 1434516., 1444056., 1455024., 1464576., 1399068.,
      1408632., 1419576., 1429152., 1440132., 1449720., 1460736., 1470336.,
      1965906., 1979244., 1994580., 2007936., 2023326., 2036700., 2052144.,
      2065536., 2858931., 2878830., 2901618., 2921544., 2944413., 2964366.,
      2987316., 3007296., 2870271., 2890278., 2913174., 2933208., 2956185.,
      2976246., 2999304., 3019392., 2881611., 2901726., 2924730., 2944872.,
      2967957., 2988126., 3011292., 3031488., 2892951., 2913174., 2936286.,
      2956536., 2979729., 3000006., 3023280., 3043584., 1866474., 1879884.,
      1895148., 1908576., 1923894., 1937340., 1952712., 1966176., 1873746.,
      1887228., 1902564., 1916064., 1931454., 1944972., 1960416., 1973952.,
      2060082., 2074284., 2090484., 2104704., 2120958., 2135196., 2151504.,
      2165760., 2995011., 3016206., 3040290., 3061512., 3085677., 3106926.,
      3131172., 3152448., 3006351., 3027654., 3051846., 3073176., 3097449.,
      3118806., 3143160., 3164544., 3017691., 3039102., 3063402., 3084840.,
      3109221., 3130686., 3155148., 3176640., 3029031., 3050550., 3074958.,
      3096504., 3120993., 3142566., 3167136., 3188736., 1953738., 1968012.,
      1984140., 1998432., 2014614., 2028924., 2045160., 2059488., 1961010.,
      1975356., 1991556., 2005920., 2022174., 2036556., 2052864., 2067264.,
      2154258., 2169324., 2186388., 2201472., 2218590., 2233692., 2250864.,
      2265984., 3131091., 3153582., 3178962., 3201480., 3226941., 3249486.,
      3275028., 3297600., 3142431., 3165030., 3190518., 3213144., 3238713.,
      3261366., 3287016., 3309696., 3153771., 3176478., 3202074., 3224808.,
      3250485., 3273246., 3299004., 3321792., 3165111., 3187926., 3213630.,
      3236472., 3262257., 3285126., 3310992., 3333888., 2041002., 2056140.,
      2073132., 2088288., 2105334., 2120508., 2137608., 2152800., 2048274.,
      2063484., 2080548., 2095776., 2112894., 2128140., 2145312., 2160576.,
      1236732., 1246200., 1256856., 1266336., 1277028., 1286520., 1297248.,
      1306752., 1792554., 1806684., 1822524., 1836672., 1852566., 1866732.,
      1882680., 1896864., 1799250., 1813452., 1829364., 1843584., 1859550.,
      1873788., 1889808., 1904064., 1805946., 1820220., 1836204., 1850496.,
      1866534., 1880844., 1896936., 1911264., 1812642., 1826988., 1843044.,
      1857408., 1873518., 1887900., 1904064., 1918464., 1165260., 1174776.,
      1185384., 1194912., 1205556., 1215096., 1225776., 1235328., 1169532.,
      1179096., 1189752., 1199328., 1210020., 1219608., 1230336., 1239936.,
      1292604., 1302648., 1313880., 1323936., 1335204., 1345272., 1356576.,
      1366656., 1872906., 1887900., 1904604., 1919616., 1936374., 1951404.,
      1968216., 1983264., 1879602., 1894668., 1911444., 1926528., 1943358.,
      1958460., 1975344., 1990464., 1886298., 1901436., 1918284., 1933440.,
      1950342., 1965516., 1982472., 1997664., 1892994., 1908204., 1925124.,
      1940352., 1957326., 1972572., 1989600., 2004864., 1216524., 1226616.,
      1237800., 1247904., 1259124., 1269240., 1280496., 1290624., 1220796.,
      1230936., 1242168., 1252320., 1263588., 1273752., 1285056., 1295232.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      486588., 494184., 502344., 509952., 518148., 525768., 534000., 541632.,
      488748., 496392., 504600., 512256., 520500., 528168., 536448., 544128.,
      490908., 498600., 506856., 514560., 522852., 530568., 538896., 546624.,
      493068., 500808., 509112., 516864., 525204., 532968., 541344., 549120.,
      495228., 503016., 511368., 519168., 527556., 535368., 543792., 551616.,
      497388., 505224., 513624., 521472., 529908., 537768., 546240., 554112.,
      499548., 507432., 515880., 523776., 532260., 540168., 548688., 556608.,
      512508., 520680., 529416., 537600., 546372., 554568., 563376., 571584.,
      514668., 522888., 531672., 539904., 548724., 556968., 565824., 574080.,
      516828., 525096., 533928., 542208., 551076., 559368., 568272., 576576.,
      518988., 527304., 536184., 544512., 553428., 561768., 570720., 579072.,
      521148., 529512., 538440., 546816., 555780., 564168., 573168., 581568.,
      523308., 531720., 540696., 549120., 558132., 566568., 575616., 584064.,
      525468., 533928., 542952., 551424., 560484., 568968., 578064., 586560.,
      538428., 547176., 556488., 565248., 574596., 583368., 592752., 601536.,
      540588., 549384., 558744., 567552., 576948., 585768., 595200., 604032.,
      542748., 551592., 561000., 569856., 579300., 588168., 597648., 606528.,
      544908., 553800., 563256., 572160., 581652., 590568., 600096., 609024.,
      547068., 556008., 565512., 574464., 584004., 592968., 602544., 611520.,
      549228., 558216., 567768., 576768., 586356., 595368., 604992., 614016.,
      551388., 560424., 570024., 579072., 588708., 597768., 607440., 616512.,
      564348., 573672., 583560., 592896., 602820., 612168., 622128., 631488.,
      566508., 575880., 585816., 595200., 605172., 614568., 624576., 633984.,
      568668., 578088., 588072., 597504., 607524., 616968., 627024., 636480.,
      570828., 580296., 590328., 599808., 609876., 619368., 629472., 638976.,
      572988., 582504., 592584., 602112., 612228., 621768., 631920., 641472.,
      575148., 584712., 594840., 604416., 614580., 624168., 634368., 643968.,
      577308., 586920., 597096., 606720., 616932., 626568., 636816., 646464.,
      590268., 600168., 610632., 620544., 631044., 640968., 651504., 661440.,
      592428., 602376., 612888., 622848., 633396., 643368., 653952., 663936.,
      594588., 604584., 615144., 625152., 635748., 645768., 656400., 666432.,
      596748., 606792., 617400., 627456., 638100., 648168., 658848., 668928.,
      598908., 609000., 619656., 629760., 640452., 650568., 661296., 671424.,
      601068., 611208., 621912., 632064., 642804., 652968., 663744., 673920.,
      603228., 613416., 624168., 634368., 645156., 655368., 666192., 676416.,
      616188., 626664., 637704., 648192., 659268., 669768., 680880., 691392.,
      618348., 628872., 639960., 650496., 661620., 672168., 683328., 693888.,
      620508., 631080., 642216., 652800., 663972., 674568., 685776., 696384.,
      622668., 633288., 644472., 655104., 666324., 676968., 688224., 698880.,
      624828., 635496., 646728., 657408., 668676., 679368., 690672., 701376.,
      626988., 637704., 648984., 659712., 671028., 681768., 693120., 703872.,
      629148., 639912., 651240., 662016., 673380., 684168., 695568., 706368.,
      642108., 653160., 664776., 675840., 687492., 698568., 710256., 721344.,
      644268., 655368., 667032., 678144., 689844., 700968., 712704., 723840.,
      646428., 657576., 669288., 680448., 692196., 703368., 715152., 726336.,
      648588., 659784., 671544., 682752., 694548., 705768., 717600., 728832.,
      650748., 661992., 673800., 685056., 696900., 708168., 720048., 731328.,
      652908., 664200., 676056., 687360., 699252., 710568., 722496., 733824.,
      655068., 666408., 678312., 689664., 701604., 712968., 724944., 736320.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2779644., 2788536., 2797428., 2806320., 2818152., 2827056., 2835960.,
      2844864., 2856756., 2865672., 2874588., 2883504., 2895456., 2904384.,
      2913312., 2922240., 4047906., 4061172., 4074438., 4087704., 4105236.,
      4118520., 4131804., 4145088., 4162710., 4176012., 4189314., 4202616.,
      4220328., 4233648., 4246968., 4260288., 4064682., 4078020., 4091358.,
      4104696., 4122300., 4135656., 4149012., 4162368., 4180062., 4193436.,
      4206810., 4220184., 4237968., 4251360., 4264752., 4278144., 4081458.,
      4094868., 4108278., 4121688., 4139364., 4152792., 4166220., 4179648.,
      4197414., 4210860., 4224306., 4237752., 4255608., 4269072., 4282536.,
      4296000., 4098234., 4111716., 4125198., 4138680., 4156428., 4169928.,
      4183428., 4196928., 4214766., 4228284., 4241802., 4255320., 4273248.,
      4286784., 4300320., 4313856., 2648172., 2657112., 2666052., 2674992.,
      2686680., 2695632., 2704584., 2713536., 2725284., 2734248., 2743212.,
      2752176., 2763984., 2772960., 2781936., 2790912., 2658972., 2667960.,
      2676948., 2685936., 2697672., 2706672., 2715672., 2724672., 2736468.,
      2745480., 2754492., 2763504., 2775360., 2784384., 2793408., 2802432.,
      2918460., 2927928., 2937396., 2946864., 2959272., 2968752., 2978232.,
      2987712., 3000180., 3009672., 3019164., 3028656., 3041184., 3050688.,
      3060192., 3069696., 4249218., 4263348., 4277478., 4291608., 4310004.,
      4324152., 4338300., 4352448., 4370934., 4385100., 4399266., 4413432.,
      4432008., 4446192., 4460376., 4474560., 4265994., 4280196., 4294398.,
      4308600., 4327068., 4341288., 4355508., 4369728., 4388286., 4402524.,
      4416762., 4431000., 4449648., 4463904., 4478160., 4492416., 4282770.,
      4297044., 4311318., 4325592., 4344132., 4358424., 4372716., 4387008.,
      4405638., 4419948., 4434258., 4448568., 4467288., 4481616., 4495944.,
      4510272., 4299546., 4313892., 4328238., 4342584., 4361196., 4375560.,
      4389924., 4404288., 4422990., 4437372., 4451754., 4466136., 4484928.,
      4499328., 4513728., 4528128., 2777772., 2787288., 2796804., 2806320.,
      2818584., 2828112., 2837640., 2847168., 2859492., 2869032., 2878572.,
      2888112., 2900496., 2910048., 2919600., 2929152., 2788572., 2798136.,
      2807700., 2817264., 2829576., 2839152., 2848728., 2858304., 2870676.,
      2880264., 2889852., 2899440., 2911872., 2921472., 2931072., 2940672.,
      3918474., 3931812., 3945150., 3958488., 3975804., 3989160., 4002516.,
      4015872., 4033278., 4046652., 4060026., 4073400., 4090896., 4104288.,
      4117680., 4131072., 5697963., 5717862., 5737761., 5757660., 5783310.,
      5803236., 5823162., 5843088., 5868873., 5888826., 5908779., 5928732.,
      5954652., 5974632., 5994612., 6014592., 5720535., 5740542., 5760549.,
      5780556., 5806314., 5826348., 5846382., 5866416., 5892309., 5912370.,
      5932431., 5952492., 5978520., 5998608., 6018696., 6038784., 5743107.,
      5763222., 5783337., 5803452., 5829318., 5849460., 5869602., 5889744.,
      5915745., 5935914., 5956083., 5976252., 6002388., 6022584., 6042780.,
      6062976., 5765679., 5785902., 5806125., 5826348., 5852322., 5872572.,
      5892822., 5913072., 5939181., 5959458., 5979735., 6000012., 6026256.,
      6046560., 6066864., 6087168., 3719538., 3732948., 3746358., 3759768.,
      3776868., 3790296., 3803724., 3817152., 3834342., 3847788., 3861234.,
      3874680., 3891960., 3905424., 3918888., 3932352., 3734010., 3747492.,
      3760974., 3774456., 3791628., 3805128., 3818628., 3832128., 3849390.,
      3862908., 3876426., 3889944., 3907296., 3920832., 3934368., 3947904.,
      4105962., 4120164., 4134366., 4148568., 4166748., 4180968., 4195188.,
      4209408., 4227678., 4241916., 4256154., 4270392., 4288752., 4303008.,
      4317264., 4331520., 5968827., 5990022., 6011217., 6032412., 6059358.,
      6080580., 6101802., 6123024., 6150105., 6171354., 6192603., 6213852.,
      6241068., 6262344., 6283620., 6304896., 5991399., 6012702., 6034005.,
      6055308., 6082362., 6103692., 6125022., 6146352., 6173541., 6194898.,
      6216255., 6237612., 6264936., 6286320., 6307704., 6329088., 6013971.,
      6035382., 6056793., 6078204., 6105366., 6126804., 6148242., 6169680.,
      6196977., 6218442., 6239907., 6261372., 6288804., 6310296., 6331788.,
      6353280., 6036543., 6058062., 6079581., 6101100., 6128370., 6149916.,
      6171462., 6193008., 6220413., 6241986., 6263559., 6285132., 6312672.,
      6334272., 6355872., 6377472., 3893202., 3907476., 3921750., 3936024.,
      3953988., 3968280., 3982572., 3996864., 4014918., 4029228., 4043538.,
      4057848., 4075992., 4090320., 4104648., 4118976., 3907674., 3922020.,
      3936366., 3950712., 3968748., 3983112., 3997476., 4011840., 4029966.,
      4044348., 4058730., 4073112., 4091328., 4105728., 4120128., 4134528.,
      4293450., 4308516., 4323582., 4338648., 4357692., 4372776., 4387860.,
      4402944., 4422078., 4437180., 4452282., 4467384., 4486608., 4501728.,
      4516848., 4531968., 6239691., 6262182., 6284673., 6307164., 6335406.,
      6357924., 6380442., 6402960., 6431337., 6453882., 6476427., 6498972.,
      6527484., 6550056., 6572628., 6595200., 6262263., 6284862., 6307461.,
      6330060., 6358410., 6381036., 6403662., 6426288., 6454773., 6477426.,
      6500079., 6522732., 6551352., 6574032., 6596712., 6619392., 6284835.,
      6307542., 6330249., 6352956., 6381414., 6404148., 6426882., 6449616.,
      6478209., 6500970., 6523731., 6546492., 6575220., 6598008., 6620796.,
      6643584., 6307407., 6330222., 6353037., 6375852., 6404418., 6427260.,
      6450102., 6472944., 6501645., 6524514., 6547383., 6570252., 6599088.,
      6621984., 6644880., 6667776., 4066866., 4082004., 4097142., 4112280.,
      4131108., 4146264., 4161420., 4176576., 4195494., 4210668., 4225842.,
      4241016., 4260024., 4275216., 4290408., 4305600., 4081338., 4096548.,
      4111758., 4126968., 4145868., 4161096., 4176324., 4191552., 4210542.,
      4225788., 4241034., 4256280., 4275360., 4290624., 4305888., 4321152.,
      2463996., 2473464., 2482932., 2492400., 2504232., 2513712., 2523192.,
      2532672., 2544564., 2554056., 2563548., 2573040., 2584992., 2594496.,
      2604000., 2613504., 3570978., 3585108., 3599238., 3613368., 3630900.,
      3645048., 3659196., 3673344., 3690966., 3705132., 3719298., 3733464.,
      3751176., 3765360., 3779544., 3793728., 3584298., 3598500., 3612702.,
      3626904., 3644508., 3658728., 3672948., 3687168., 3704862., 3719100.,
      3733338., 3747576., 3765360., 3779616., 3793872., 3808128., 3597618.,
      3611892., 3626166., 3640440., 3658116., 3672408., 3686700., 3700992.,
      3718758., 3733068., 3747378., 3761688., 3779544., 3793872., 3808200.,
      3822528., 3610938., 3625284., 3639630., 3653976., 3671724., 3686088.,
      3700452., 3714816., 3732654., 3747036., 3761418., 3775800., 3793728.,
      3808128., 3822528., 3836928., 2321004., 2330520., 2340036., 2349552.,
      2361240., 2370768., 2380296., 2389824., 2401572., 2411112., 2420652.,
      2430192., 2442000., 2451552., 2461104., 2470656., 2329500., 2339064.,
      2348628., 2358192., 2369928., 2379504., 2389080., 2398656., 2410452.,
      2420040., 2429628., 2439216., 2451072., 2460672., 2470272., 2479872.,
      2575164., 2585208., 2595252., 2605296., 2617704., 2627760., 2637816.,
      2647872., 2660340., 2670408., 2680476., 2690544., 2703072., 2713152.,
      2723232., 2733312., 3730818., 3745812., 3760806., 3775800., 3794196.,
      3809208., 3824220., 3839232., 3857718., 3872748., 3887778., 3902808.,
      3921384., 3936432., 3951480., 3966528., 3744138., 3759204., 3774270.,
      3789336., 3807804., 3822888., 3837972., 3853056., 3871614., 3886716.,
      3901818., 3916920., 3935568., 3950688., 3965808., 3980928., 3757458.,
      3772596., 3787734., 3802872., 3821412., 3836568., 3851724., 3866880.,
      3885510., 3900684., 3915858., 3931032., 3949752., 3964944., 3980136.,
      3995328., 3770778., 3785988., 3801198., 3816408., 3835020., 3850248.,
      3865476., 3880704., 3899406., 3914652., 3929898., 3945144., 3963936.,
      3979200., 3994464., 4009728., 2422956., 2433048., 2443140., 2453232.,
      2465496., 2475600., 2485704., 2495808., 2508132., 2518248., 2528364.,
      2538480., 2550864., 2560992., 2571120., 2581248., 2431452., 2441592.,
      2451732., 2461872., 2474184., 2484336., 2494488., 2504640., 2517012.,
      2527176., 2537340., 2547504., 2559936., 2570112., 2580288., 2590464.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      965580.,  973176.,  980772.,  988368.,  997080.,  1004688., 1012296.,
      1019904., 1028676., 1036296., 1043916., 1051536., 1060368., 1068000.,
      1075632., 1083264., 969852.,  977496.,  985140.,  992784.,  1001544.,
      1009200., 1016856., 1024512., 1033332., 1041000., 1048668., 1056336.,
      1065216., 1072896., 1080576., 1088256., 974124.,  981816.,  989508.,
      997200.,  1006008., 1013712., 1021416., 1029120., 1037988., 1045704.,
      1053420., 1061136., 1070064., 1077792., 1085520., 1093248., 978396.,
      986136.,  993876.,  1001616., 1010472., 1018224., 1025976., 1033728.,
      1042644., 1050408., 1058172., 1065936., 1074912., 1082688., 1090464.,
      1098240., 982668.,  990456.,  998244.,  1006032., 1014936., 1022736.,
      1030536., 1038336., 1047300., 1055112., 1062924., 1070736., 1079760.,
      1087584., 1095408., 1103232., 986940.,  994776.,  1002612., 1010448.,
      1019400., 1027248., 1035096., 1042944., 1051956., 1059816., 1067676.,
      1075536., 1084608., 1092480., 1100352., 1108224., 991212.,  999096.,
      1006980., 1014864., 1023864., 1031760., 1039656., 1047552., 1056612.,
      1064520., 1072428., 1080336., 1089456., 1097376., 1105296., 1113216.,
      1016844., 1025016., 1033188., 1041360., 1050648., 1058832., 1067016.,
      1075200., 1084548., 1092744., 1100940., 1109136., 1118544., 1126752.,
      1134960., 1143168., 1021116., 1029336., 1037556., 1045776., 1055112.,
      1063344., 1071576., 1079808., 1089204., 1097448., 1105692., 1113936.,
      1123392., 1131648., 1139904., 1148160., 1025388., 1033656., 1041924.,
      1050192., 1059576., 1067856., 1076136., 1084416., 1093860., 1102152.,
      1110444., 1118736., 1128240., 1136544., 1144848., 1153152., 1029660.,
      1037976., 1046292., 1054608., 1064040., 1072368., 1080696., 1089024.,
      1098516., 1106856., 1115196., 1123536., 1133088., 1141440., 1149792.,
      1158144., 1033932., 1042296., 1050660., 1059024., 1068504., 1076880.,
      1085256., 1093632., 1103172., 1111560., 1119948., 1128336., 1137936.,
      1146336., 1154736., 1163136., 1038204., 1046616., 1055028., 1063440.,
      1072968., 1081392., 1089816., 1098240., 1107828., 1116264., 1124700.,
      1133136., 1142784., 1151232., 1159680., 1168128., 1042476., 1050936.,
      1059396., 1067856., 1077432., 1085904., 1094376., 1102848., 1112484.,
      1120968., 1129452., 1137936., 1147632., 1156128., 1164624., 1173120.,
      1068108., 1076856., 1085604., 1094352., 1104216., 1112976., 1121736.,
      1130496., 1140420., 1149192., 1157964., 1166736., 1176720., 1185504.,
      1194288., 1203072., 1072380., 1081176., 1089972., 1098768., 1108680.,
      1117488., 1126296., 1135104., 1145076., 1153896., 1162716., 1171536.,
      1181568., 1190400., 1199232., 1208064., 1076652., 1085496., 1094340.,
      1103184., 1113144., 1122000., 1130856., 1139712., 1149732., 1158600.,
      1167468., 1176336., 1186416., 1195296., 1204176., 1213056., 1080924.,
      1089816., 1098708., 1107600., 1117608., 1126512., 1135416., 1144320.,
      1154388., 1163304., 1172220., 1181136., 1191264., 1200192., 1209120.,
      1218048., 1085196., 1094136., 1103076., 1112016., 1122072., 1131024.,
      1139976., 1148928., 1159044., 1168008., 1176972., 1185936., 1196112.,
      1205088., 1214064., 1223040., 1089468., 1098456., 1107444., 1116432.,
      1126536., 1135536., 1144536., 1153536., 1163700., 1172712., 1181724.,
      1190736., 1200960., 1209984., 1219008., 1228032., 1093740., 1102776.,
      1111812., 1120848., 1131000., 1140048., 1149096., 1158144., 1168356.,
      1177416., 1186476., 1195536., 1205808., 1214880., 1223952., 1233024.,
      1119372., 1128696., 1138020., 1147344., 1157784., 1167120., 1176456.,
      1185792., 1196292., 1205640., 1214988., 1224336., 1234896., 1244256.,
      1253616., 1262976., 1123644., 1133016., 1142388., 1151760., 1162248.,
      1171632., 1181016., 1190400., 1200948., 1210344., 1219740., 1229136.,
      1239744., 1249152., 1258560., 1267968., 1127916., 1137336., 1146756.,
      1156176., 1166712., 1176144., 1185576., 1195008., 1205604., 1215048.,
      1224492., 1233936., 1244592., 1254048., 1263504., 1272960., 1132188.,
      1141656., 1151124., 1160592., 1171176., 1180656., 1190136., 1199616.,
      1210260., 1219752., 1229244., 1238736., 1249440., 1258944., 1268448.,
      1277952., 1136460., 1145976., 1155492., 1165008., 1175640., 1185168.,
      1194696., 1204224., 1214916., 1224456., 1233996., 1243536., 1254288.,
      1263840., 1273392., 1282944., 1140732., 1150296., 1159860., 1169424.,
      1180104., 1189680., 1199256., 1208832., 1219572., 1229160., 1238748.,
      1248336., 1259136., 1268736., 1278336., 1287936., 1145004., 1154616.,
      1164228., 1173840., 1184568., 1194192., 1203816., 1213440., 1224228.,
      1233864., 1243500., 1253136., 1263984., 1273632., 1283280., 1292928.,
      1170636., 1180536., 1190436., 1200336., 1211352., 1221264., 1231176.,
      1241088., 1252164., 1262088., 1272012., 1281936., 1293072., 1303008.,
      1312944., 1322880., 1174908., 1184856., 1194804., 1204752., 1215816.,
      1225776., 1235736., 1245696., 1256820., 1266792., 1276764., 1286736.,
      1297920., 1307904., 1317888., 1327872., 1179180., 1189176., 1199172.,
      1209168., 1220280., 1230288., 1240296., 1250304., 1261476., 1271496.,
      1281516., 1291536., 1302768., 1312800., 1322832., 1332864., 1183452.,
      1193496., 1203540., 1213584., 1224744., 1234800., 1244856., 1254912.,
      1266132., 1276200., 1286268., 1296336., 1307616., 1317696., 1327776.,
      1337856., 1187724., 1197816., 1207908., 1218000., 1229208., 1239312.,
      1249416., 1259520., 1270788., 1280904., 1291020., 1301136., 1312464.,
      1322592., 1332720., 1342848., 1191996., 1202136., 1212276., 1222416.,
      1233672., 1243824., 1253976., 1264128., 1275444., 1285608., 1295772.,
      1305936., 1317312., 1327488., 1337664., 1347840., 1196268., 1206456.,
      1216644., 1226832., 1238136., 1248336., 1258536., 1268736., 1280100.,
      1290312., 1300524., 1310736., 1322160., 1332384., 1342608., 1352832.,
      1221900., 1232376., 1242852., 1253328., 1264920., 1275408., 1285896.,
      1296384., 1308036., 1318536., 1329036., 1339536., 1351248., 1361760.,
      1372272., 1382784., 1226172., 1236696., 1247220., 1257744., 1269384.,
      1279920., 1290456., 1300992., 1312692., 1323240., 1333788., 1344336.,
      1356096., 1366656., 1377216., 1387776., 1230444., 1241016., 1251588.,
      1262160., 1273848., 1284432., 1295016., 1305600., 1317348., 1327944.,
      1338540., 1349136., 1360944., 1371552., 1382160., 1392768., 1234716.,
      1245336., 1255956., 1266576., 1278312., 1288944., 1299576., 1310208.,
      1322004., 1332648., 1343292., 1353936., 1365792., 1376448., 1387104.,
      1397760., 1238988., 1249656., 1260324., 1270992., 1282776., 1293456.,
      1304136., 1314816., 1326660., 1337352., 1348044., 1358736., 1370640.,
      1381344., 1392048., 1402752., 1243260., 1253976., 1264692., 1275408.,
      1287240., 1297968., 1308696., 1319424., 1331316., 1342056., 1352796.,
      1363536., 1375488., 1386240., 1396992., 1407744., 1247532., 1258296.,
      1269060., 1279824., 1291704., 1302480., 1313256., 1324032., 1335972.,
      1346760., 1357548., 1368336., 1380336., 1391136., 1401936., 1412736.,
      1273164., 1284216., 1295268., 1306320., 1318488., 1329552., 1340616.,
      1351680., 1363908., 1374984., 1386060., 1397136., 1409424., 1420512.,
      1431600., 1442688., 1277436., 1288536., 1299636., 1310736., 1322952.,
      1334064., 1345176., 1356288., 1368564., 1379688., 1390812., 1401936.,
      1414272., 1425408., 1436544., 1447680., 1281708., 1292856., 1304004.,
      1315152., 1327416., 1338576., 1349736., 1360896., 1373220., 1384392.,
      1395564., 1406736., 1419120., 1430304., 1441488., 1452672., 1285980.,
      1297176., 1308372., 1319568., 1331880., 1343088., 1354296., 1365504.,
      1377876., 1389096., 1400316., 1411536., 1423968., 1435200., 1446432.,
      1457664., 1290252., 1301496., 1312740., 1323984., 1336344., 1347600.,
      1358856., 1370112., 1382532., 1393800., 1405068., 1416336., 1428816.,
      1440096., 1451376., 1462656., 1294524., 1305816., 1317108., 1328400.,
      1340808., 1352112., 1363416., 1374720., 1387188., 1398504., 1409820.,
      1421136., 1433664., 1444992., 1456320., 1467648., 1298796., 1310136.,
      1321476., 1332816., 1345272., 1356624., 1367976., 1379328., 1391844.,
      1403208., 1414572., 1425936., 1438512., 1449888., 1461264., 1472640.};
  const std::array<int, 4> in_shape = {{3, 11, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      105258., 105636., 137796., 138288., 101352., 101712., 102072.,
      110550., 110928., 144684., 145176., 106392., 106752., 107112.,
      148689., 149202., 194430., 195096., 142830., 143316., 143802.,
      155871., 156384., 203754., 204420., 149634., 150120., 150606.,
      163053., 163566., 213078., 213744., 156438., 156924., 157410.,
      93918.,  94224.,  122508., 122904., 89760.,  90048.,  90336.,
      98202.,  98508.,  128052., 128448., 93792.,  94080.,  94368.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19706., 19784., 19862., 19940., 20018., 20096., 20174., 20798., 20876.,
      20954., 21032., 21110., 21188., 21266., 21890., 21968., 22046., 22124.,
      22202., 22280., 22358., 22982., 23060., 23138., 23216., 23294., 23372.,
      23450., 24074., 24152., 24230., 24308., 24386., 24464., 24542., 25166.,
      25244., 25322., 25400., 25478., 25556., 25634., 26258., 26336., 26414.,
      26492., 26570., 26648., 26726.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      206610., 210516., 207348., 211272., 270384., 275592., 271344., 276576.,
      198798., 202704., 199500., 203424., 200202., 204144., 216942., 221100.,
      217680., 221856., 283824., 289368., 284784., 290352., 208626., 212784.,
      209328., 213504., 210030., 214224., 291519., 297378., 292518., 298404.,
      381048., 388860., 382344., 390192., 279801., 285660., 280746., 286632.,
      281691., 287604., 305505., 311742., 306504., 312768., 399192., 407508.,
      400488., 408840., 293031., 299268., 293976., 300240., 294921., 301212.,
      319491., 326106., 320490., 327132., 417336., 426156., 418632., 427488.,
      306261., 312876., 307206., 313848., 308151., 314820., 183678., 187836.,
      184272., 188448., 239472., 245016., 240240., 245808., 175362., 179520.,
      175920., 180096., 176478., 180672., 191994., 196404., 192588., 197016.,
      250224., 256104., 250992., 256896., 183174., 187584., 183732., 188160.,
      184290., 188736.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      37192., 39412., 37336., 39568., 37480., 39724., 37624., 39880., 37768.,
      40036., 37912., 40192., 38056., 40348., 39208., 41596., 39352., 41752.,
      39496., 41908., 39640., 42064., 39784., 42220., 39928., 42376., 40072.,
      42532., 41224., 43780., 41368., 43936., 41512., 44092., 41656., 44248.,
      41800., 44404., 41944., 44560., 42088., 44716., 43240., 45964., 43384.,
      46120., 43528., 46276., 43672., 46432., 43816., 46588., 43960., 46744.,
      44104., 46900., 45256., 48148., 45400., 48304., 45544., 48460., 45688.,
      48616., 45832., 48772., 45976., 48928., 46120., 49084., 47272., 50332.,
      47416., 50488., 47560., 50644., 47704., 50800., 47848., 50956., 47992.,
      51112., 48136., 51268., 49288., 52516., 49432., 52672., 49576., 52828.,
      49720., 52984., 49864., 53140., 50008., 53296., 50152., 53452.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      409314., 413220., 417126., 421032., 410772., 414696., 418620., 422544.,
      535560., 540768., 545976., 551184., 537456., 542688., 547920., 553152.,
      393690., 397596., 401502., 405408., 395076., 399000., 402924., 406848.,
      396462., 400404., 404346., 408288., 429726., 433884., 438042., 442200.,
      431184., 435360., 439536., 443712., 562104., 567648., 573192., 578736.,
      564000., 569568., 575136., 580704., 413094., 417252., 421410., 425568.,
      414480., 418656., 422832., 427008., 415866., 420060., 424254., 428448.,
      577179., 583038., 588897., 594756., 579150., 585036., 590922., 596808.,
      754284., 762096., 769908., 777720., 756840., 764688., 772536., 780384.,
      553743., 559602., 565461., 571320., 555606., 561492., 567378., 573264.,
      557469., 563382., 569295., 575208., 604773., 611010., 617247., 623484.,
      606744., 613008., 619272., 625536., 790068., 798384., 806700., 815016.,
      792624., 800976., 809328., 817680., 579825., 586062., 592299., 598536.,
      581688., 587952., 594216., 600480., 583551., 589842., 596133., 602424.,
      632367., 638982., 645597., 652212., 634338., 640980., 647622., 654264.,
      825852., 834672., 843492., 852312., 828408., 837264., 846120., 854976.,
      605907., 612522., 619137., 625752., 607770., 614412., 621054., 627696.,
      609633., 616302., 622971., 629640., 363198., 367356., 371514., 375672.,
      364368., 368544., 372720., 376896., 473400., 478944., 484488., 490032.,
      474912., 480480., 486048., 491616., 346566., 350724., 354882., 359040.,
      347664., 351840., 356016., 360192., 348762., 352956., 357150., 361344.,
      379578., 383988., 388398., 392808., 380748., 385176., 389604., 394032.,
      494568., 500448., 506328., 512208., 496080., 501984., 507888., 513792.,
      361938., 366348., 370758., 375168., 363036., 367464., 371892., 376320.,
      364134., 368580., 373026., 377472.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      72164., 74384.,  76604.,  78824.,  72440., 74672.,  76904.,  79136.,
      72716., 74960.,  77204.,  79448.,  72992., 75248.,  77504.,  79760.,
      73268., 75536.,  77804.,  80072.,  73544., 75824.,  78104.,  80384.,
      73820., 76112.,  78404.,  80696.,  76028., 78416.,  80804.,  83192.,
      76304., 78704.,  81104.,  83504.,  76580., 78992.,  81404.,  83816.,
      76856., 79280.,  81704.,  84128.,  77132., 79568.,  82004.,  84440.,
      77408., 79856.,  82304.,  84752.,  77684., 80144.,  82604.,  85064.,
      79892., 82448.,  85004.,  87560.,  80168., 82736.,  85304.,  87872.,
      80444., 83024.,  85604.,  88184.,  80720., 83312.,  85904.,  88496.,
      80996., 83600.,  86204.,  88808.,  81272., 83888.,  86504.,  89120.,
      81548., 84176.,  86804.,  89432.,  83756., 86480.,  89204.,  91928.,
      84032., 86768.,  89504.,  92240.,  84308., 87056.,  89804.,  92552.,
      84584., 87344.,  90104.,  92864.,  84860., 87632.,  90404.,  93176.,
      85136., 87920.,  90704.,  93488.,  85412., 88208.,  91004.,  93800.,
      87620., 90512.,  93404.,  96296.,  87896., 90800.,  93704.,  96608.,
      88172., 91088.,  94004.,  96920.,  88448., 91376.,  94304.,  97232.,
      88724., 91664.,  94604.,  97544.,  89000., 91952.,  94904.,  97856.,
      89276., 92240.,  95204.,  98168.,  91484., 94544.,  97604.,  100664.,
      91760., 94832.,  97904.,  100976., 92036., 95120.,  98204.,  101288.,
      92312., 95408.,  98504.,  101600., 92588., 95696.,  98804.,  101912.,
      92864., 95984.,  99104.,  102224., 93140., 96272.,  99404.,  102536.,
      95348., 98576.,  101804., 105032., 95624., 98864.,  102104., 105344.,
      95900., 99152.,  102404., 105656., 96176., 99440.,  102704., 105968.,
      96452., 99728.,  103004., 106280., 96728., 100016., 103304., 106592.,
      97004., 100304., 103604., 106904.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      412482., 421032., 413958., 422544., 539808., 551184., 541728., 553152.,
      396894., 405408., 398298., 406848., 399702., 408288., 433146., 442200.,
      434622., 443712., 566688., 578736., 568608., 580704., 416550., 425568.,
      417954., 427008., 419358., 428448., 582039., 594756., 584037., 596808.,
      760800., 777720., 763392., 780384., 558657., 571320., 560547., 573264.,
      562437., 575208., 610011., 623484., 612009., 625536., 797088., 815016.,
      799680., 817680., 585117., 598536., 587007., 600480., 588897., 602424.,
      637983., 652212., 639981., 654264., 833376., 852312., 835968., 854976.,
      611577., 625752., 613467., 627696., 615357., 629640., 366762., 375672.,
      367950., 376896., 478176., 490032., 479712., 491616., 350166., 359040.,
      351282., 360192., 352398., 361344., 383394., 392808., 384582., 394032.,
      499680., 512208., 501216., 513792., 365790., 375168., 366906., 376320.,
      368022., 377472.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      74240.,  78824.,  74528., 79136.,  74816., 79448.,  75104., 79760.,
      75392.,  80072.,  75680., 80384.,  75968., 80696.,  78272., 83192.,
      78560.,  83504.,  78848., 83816.,  79136., 84128.,  79424., 84440.,
      79712.,  84752.,  80000., 85064.,  82304., 87560.,  82592., 87872.,
      82880.,  88184.,  83168., 88496.,  83456., 88808.,  83744., 89120.,
      84032.,  89432.,  86336., 91928.,  86624., 92240.,  86912., 92552.,
      87200.,  92864.,  87488., 93176.,  87776., 93488.,  88064., 93800.,
      90368.,  96296.,  90656., 96608.,  90944., 96920.,  91232., 97232.,
      91520.,  97544.,  91808., 97856.,  92096., 98168.,  94400., 100664.,
      94688.,  100976., 94976., 101288., 95264., 101600., 95552., 101912.,
      95840.,  102224., 96128., 102536., 98432., 105032., 98720., 105344.,
      99008.,  105656., 99296., 105968., 99584., 106280., 99872., 106592.,
      100160., 106904.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      817170.,  824964.,  834252.,  842064.,  820086.,  827916.,  837240.,
      845088.,  1069224., 1079616., 1091952., 1102368., 1073016., 1083456.,
      1095840., 1106304., 785994.,  793788.,  803004.,  810816.,  788766.,
      796596.,  805848.,  813696.,  791538.,  799404.,  808692.,  816576.,
      857994.,  866292.,  876084.,  884400.,  860910.,  869244.,  879072.,
      887424.,  1122312., 1133376., 1146384., 1157472., 1126104., 1137216.,
      1150272., 1161408., 824802.,  833100.,  842820.,  851136.,  827574.,
      835908.,  845664.,  854016.,  830346.,  838716.,  848508.,  856896.,
      1152387., 1164078., 1177794., 1189512., 1156329., 1168074., 1181844.,
      1193616., 1506012., 1521600., 1539816., 1555440., 1511124., 1526784.,
      1545072., 1560768., 1105623., 1117314., 1130922., 1142640., 1109349.,
      1121094., 1134756., 1146528., 1113075., 1124874., 1138590., 1150416.,
      1207575., 1220022., 1234494., 1246968., 1211517., 1224018., 1238544.,
      1251072., 1577580., 1594176., 1613400., 1630032., 1582692., 1599360.,
      1618656., 1635360., 1157787., 1170234., 1184598., 1197072., 1161513.,
      1174014., 1188432., 1200960., 1165239., 1177794., 1192266., 1204848.,
      1262763., 1275966., 1291194., 1304424., 1266705., 1279962., 1295244.,
      1308528., 1649148., 1666752., 1686984., 1704624., 1654260., 1671936.,
      1692240., 1709952., 1209951., 1223154., 1238274., 1251504., 1213677.,
      1226934., 1242108., 1255392., 1217403., 1230714., 1245942., 1259280.,
      725226.,  733524.,  743028.,  751344.,  727566.,  735900.,  745440.,
      753792.,  945288.,  956352.,  968976.,  980064.,  948312.,  959424.,
      972096.,  983232.,  692034.,  700332.,  709764.,  718080.,  694230.,
      702564.,  712032.,  720384.,  696426.,  704796.,  714300.,  722688.,
      757986.,  766788.,  776796.,  785616.,  760326.,  769164.,  779208.,
      788064.,  987624.,  999360.,  1012656., 1024416., 990648.,  1002432.,
      1015776., 1027584., 722778.,  731580.,  741516.,  750336.,  724974.,
      733812.,  743784.,  752640.,  727170.,  736044.,  746052.,  754944.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      144052., 148480., 153208., 157648., 144604., 149056., 153808., 158272.,
      145156., 149632., 154408., 158896., 145708., 150208., 155008., 159520.,
      146260., 150784., 155608., 160144., 146812., 151360., 156208., 160768.,
      147364., 151936., 156808., 161392., 151780., 156544., 161608., 166384.,
      152332., 157120., 162208., 167008., 152884., 157696., 162808., 167632.,
      153436., 158272., 163408., 168256., 153988., 158848., 164008., 168880.,
      154540., 159424., 164608., 169504., 155092., 160000., 165208., 170128.,
      159508., 164608., 170008., 175120., 160060., 165184., 170608., 175744.,
      160612., 165760., 171208., 176368., 161164., 166336., 171808., 176992.,
      161716., 166912., 172408., 177616., 162268., 167488., 173008., 178240.,
      162820., 168064., 173608., 178864., 167236., 172672., 178408., 183856.,
      167788., 173248., 179008., 184480., 168340., 173824., 179608., 185104.,
      168892., 174400., 180208., 185728., 169444., 174976., 180808., 186352.,
      169996., 175552., 181408., 186976., 170548., 176128., 182008., 187600.,
      174964., 180736., 186808., 192592., 175516., 181312., 187408., 193216.,
      176068., 181888., 188008., 193840., 176620., 182464., 188608., 194464.,
      177172., 183040., 189208., 195088., 177724., 183616., 189808., 195712.,
      178276., 184192., 190408., 196336., 182692., 188800., 195208., 201328.,
      183244., 189376., 195808., 201952., 183796., 189952., 196408., 202576.,
      184348., 190528., 197008., 203200., 184900., 191104., 197608., 203824.,
      185452., 191680., 198208., 204448., 186004., 192256., 198808., 205072.,
      190420., 196864., 203608., 210064., 190972., 197440., 204208., 210688.,
      191524., 198016., 204808., 211312., 192076., 198592., 205408., 211936.,
      192628., 199168., 206008., 212560., 193180., 199744., 206608., 213184.,
      193732., 200320., 207208., 213808.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1626546., 1634340., 1642134., 1649928., 1660692., 1668504., 1676316.,
      1684128., 1632342., 1640172., 1648002., 1655832., 1666632., 1674480.,
      1682328., 1690176., 2128056., 2138448., 2148840., 2159232., 2173488.,
      2183904., 2194320., 2204736., 2135592., 2146032., 2156472., 2166912.,
      2181216., 2191680., 2202144., 2212608., 1564194., 1571988., 1579782.,
      1587576., 1598196., 1606008., 1613820., 1621632., 1569702., 1577532.,
      1585362., 1593192., 1603848., 1611696., 1619544., 1627392., 1575210.,
      1583076., 1590942., 1598808., 1609500., 1617384., 1625268., 1633152.,
      1707690., 1715988., 1724286., 1732584., 1743852., 1752168., 1760484.,
      1768800., 1713486., 1721820., 1730154., 1738488., 1749792., 1758144.,
      1766496., 1774848., 2233560., 2244624., 2255688., 2266752., 2281680.,
      2292768., 2303856., 2314944., 2241096., 2252208., 2263320., 2274432.,
      2289408., 2300544., 2311680., 2322816., 1641306., 1649604., 1657902.,
      1666200., 1677324., 1685640., 1693956., 1702272., 1646814., 1655148.,
      1663482., 1671816., 1682976., 1691328., 1699680., 1708032., 1652322.,
      1660692., 1669062., 1677432., 1688628., 1697016., 1705404., 1713792.,
      2293083., 2304774., 2316465., 2328156., 2343870., 2355588., 2367306.,
      2379024., 2300913., 2312658., 2324403., 2336148., 2351916., 2363688.,
      2375460., 2387232., 2996436., 3012024., 3027612., 3043200., 3064008.,
      3079632., 3095256., 3110880., 3006588., 3022248., 3037908., 3053568.,
      3074448., 3090144., 3105840., 3121536., 2199555., 2211246., 2222937.,
      2234628., 2250126., 2261844., 2273562., 2285280., 2206953., 2218698.,
      2230443., 2242188., 2257740., 2269512., 2281284., 2293056., 2214351.,
      2226150., 2237949., 2249748., 2265354., 2277180., 2289006., 2300832.,
      2402703., 2415150., 2427597., 2440044., 2456514., 2468988., 2481462.,
      2493936., 2410533., 2423034., 2435535., 2448036., 2464560., 2477088.,
      2489616., 2502144., 3138564., 3155160., 3171756., 3188352., 3210168.,
      3226800., 3243432., 3260064., 3148716., 3165384., 3182052., 3198720.,
      3220608., 3237312., 3254016., 3270720., 2303127., 2315574., 2328021.,
      2340468., 2356722., 2369196., 2381670., 2394144., 2310525., 2323026.,
      2335527., 2348028., 2364336., 2376864., 2389392., 2401920., 2317923.,
      2330478., 2343033., 2355588., 2371950., 2384532., 2397114., 2409696.,
      2512323., 2525526., 2538729., 2551932., 2569158., 2582388., 2595618.,
      2608848., 2520153., 2533410., 2546667., 2559924., 2577204., 2590488.,
      2603772., 2617056., 3280692., 3298296., 3315900., 3333504., 3356328.,
      3373968., 3391608., 3409248., 3290844., 3308520., 3326196., 3343872.,
      3366768., 3384480., 3402192., 3419904., 2406699., 2419902., 2433105.,
      2446308., 2463318., 2476548., 2489778., 2503008., 2414097., 2427354.,
      2440611., 2453868., 2470932., 2484216., 2497500., 2510784., 2421495.,
      2434806., 2448117., 2461428., 2478546., 2491884., 2505222., 2518560.,
      1442154., 1450452., 1458750., 1467048., 1477740., 1486056., 1494372.,
      1502688., 1446798., 1455132., 1463466., 1471800., 1482528., 1490880.,
      1499232., 1507584., 1879512., 1890576., 1901640., 1912704., 1926864.,
      1937952., 1949040., 1960128., 1885512., 1896624., 1907736., 1918848.,
      1933056., 1944192., 1955328., 1966464., 1375770., 1384068., 1392366.,
      1400664., 1411212., 1419528., 1427844., 1436160., 1380126., 1388460.,
      1396794., 1405128., 1415712., 1424064., 1432416., 1440768., 1384482.,
      1392852., 1401222., 1409592., 1420212., 1428600., 1436988., 1445376.,
      1507170., 1515972., 1524774., 1533576., 1544772., 1553592., 1562412.,
      1571232., 1511814., 1520652., 1529490., 1538328., 1549560., 1558416.,
      1567272., 1576128., 1963512., 1975248., 1986984., 1998720., 2013552.,
      2025312., 2037072., 2048832., 1969512., 1981296., 1993080., 2004864.,
      2019744., 2031552., 2043360., 2055168., 1436754., 1445556., 1454358.,
      1463160., 1474212., 1483032., 1491852., 1500672., 1441110., 1449948.,
      1458786., 1467624., 1478712., 1487568., 1496424., 1505280., 1445466.,
      1454340., 1463214., 1472088., 1483212., 1492104., 1500996., 1509888.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      283676., 288104., 292532., 296960., 301976., 306416., 310856., 315296.,
      284756., 289208., 293660., 298112., 303152., 307616., 312080., 316544.,
      285836., 290312., 294788., 299264., 304328., 308816., 313304., 317792.,
      286916., 291416., 295916., 300416., 305504., 310016., 314528., 319040.,
      287996., 292520., 297044., 301568., 306680., 311216., 315752., 320288.,
      289076., 293624., 298172., 302720., 307856., 312416., 316976., 321536.,
      290156., 294728., 299300., 303872., 309032., 313616., 318200., 322784.,
      298796., 303560., 308324., 313088., 318440., 323216., 327992., 332768.,
      299876., 304664., 309452., 314240., 319616., 324416., 329216., 334016.,
      300956., 305768., 310580., 315392., 320792., 325616., 330440., 335264.,
      302036., 306872., 311708., 316544., 321968., 326816., 331664., 336512.,
      303116., 307976., 312836., 317696., 323144., 328016., 332888., 337760.,
      304196., 309080., 313964., 318848., 324320., 329216., 334112., 339008.,
      305276., 310184., 315092., 320000., 325496., 330416., 335336., 340256.,
      313916., 319016., 324116., 329216., 334904., 340016., 345128., 350240.,
      314996., 320120., 325244., 330368., 336080., 341216., 346352., 351488.,
      316076., 321224., 326372., 331520., 337256., 342416., 347576., 352736.,
      317156., 322328., 327500., 332672., 338432., 343616., 348800., 353984.,
      318236., 323432., 328628., 333824., 339608., 344816., 350024., 355232.,
      319316., 324536., 329756., 334976., 340784., 346016., 351248., 356480.,
      320396., 325640., 330884., 336128., 341960., 347216., 352472., 357728.,
      329036., 334472., 339908., 345344., 351368., 356816., 362264., 367712.,
      330116., 335576., 341036., 346496., 352544., 358016., 363488., 368960.,
      331196., 336680., 342164., 347648., 353720., 359216., 364712., 370208.,
      332276., 337784., 343292., 348800., 354896., 360416., 365936., 371456.,
      333356., 338888., 344420., 349952., 356072., 361616., 367160., 372704.,
      334436., 339992., 345548., 351104., 357248., 362816., 368384., 373952.,
      335516., 341096., 346676., 352256., 358424., 364016., 369608., 375200.,
      344156., 349928., 355700., 361472., 367832., 373616., 379400., 385184.,
      345236., 351032., 356828., 362624., 369008., 374816., 380624., 386432.,
      346316., 352136., 357956., 363776., 370184., 376016., 381848., 387680.,
      347396., 353240., 359084., 364928., 371360., 377216., 383072., 388928.,
      348476., 354344., 360212., 366080., 372536., 378416., 384296., 390176.,
      349556., 355448., 361340., 367232., 373712., 379616., 385520., 391424.,
      350636., 356552., 362468., 368384., 374888., 380816., 386744., 392672.,
      359276., 365384., 371492., 377600., 384296., 390416., 396536., 402656.,
      360356., 366488., 372620., 378752., 385472., 391616., 397760., 403904.,
      361436., 367592., 373748., 379904., 386648., 392816., 398984., 405152.,
      362516., 368696., 374876., 381056., 387824., 394016., 400208., 406400.,
      363596., 369800., 376004., 382208., 389000., 395216., 401432., 407648.,
      364676., 370904., 377132., 383360., 390176., 396416., 402656., 408896.,
      365756., 372008., 378260., 384512., 391352., 397616., 403880., 410144.,
      374396., 380840., 387284., 393728., 400760., 407216., 413672., 420128.,
      375476., 381944., 388412., 394880., 401936., 408416., 414896., 421376.,
      376556., 383048., 389540., 396032., 403112., 409616., 416120., 422624.,
      377636., 384152., 390668., 397184., 404288., 410816., 417344., 423872.,
      378716., 385256., 391796., 398336., 405464., 412016., 418568., 425120.,
      379796., 386360., 392924., 399488., 406640., 413216., 419792., 426368.,
      380876., 387464., 394052., 400640., 407816., 414416., 421016., 427616.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1632882., 1649928., 1667010., 1684128., 1638714., 1655832., 1672986.,
      1690176., 2136552., 2159232., 2181960., 2204736., 2144136., 2166912.,
      2189736., 2212608., 1570602., 1587576., 1604586., 1621632., 1576146.,
      1593192., 1610274., 1627392., 1581690., 1598808., 1615962., 1633152.,
      1714530., 1732584., 1750674., 1768800., 1720362., 1738488., 1756650.,
      1774848., 2242728., 2266752., 2290824., 2314944., 2250312., 2274432.,
      2298600., 2322816., 1648218., 1666200., 1684218., 1702272., 1653762.,
      1671816., 1689906., 1708032., 1659306., 1677432., 1695594., 1713792.,
      2302803., 2328156., 2353563., 2379024., 2310687., 2336148., 2361663.,
      2387232., 3009468., 3043200., 3077004., 3110880., 3019692., 3053568.,
      3087516., 3121536., 2209383., 2234628., 2259927., 2285280., 2216835.,
      2242188., 2267595., 2293056., 2224287., 2249748., 2275263., 2300832.,
      2413179., 2440044., 2466963., 2493936., 2421063., 2448036., 2475063.,
      2502144., 3152604., 3188352., 3224172., 3260064., 3162828., 3198720.,
      3234684., 3270720., 2313711., 2340468., 2367279., 2394144., 2321163.,
      2348028., 2374947., 2401920., 2328615., 2355588., 2382615., 2409696.,
      2523555., 2551932., 2580363., 2608848., 2531439., 2559924., 2588463.,
      2617056., 3295740., 3333504., 3371340., 3409248., 3305964., 3343872.,
      3381852., 3419904., 2418039., 2446308., 2474631., 2503008., 2425491.,
      2453868., 2482299., 2510784., 2432943., 2461428., 2489967., 2518560.,
      1449282., 1467048., 1484850., 1502688., 1453962., 1471800., 1489674.,
      1507584., 1889064., 1912704., 1936392., 1960128., 1895112., 1918848.,
      1942632., 1966464., 1382970., 1400664., 1418394., 1436160., 1387362.,
      1405128., 1422930., 1440768., 1391754., 1409592., 1427466., 1445376.,
      1514802., 1533576., 1552386., 1571232., 1519482., 1538328., 1557210.,
      1576128., 1973736., 1998720., 2023752., 2048832., 1979784., 2004864.,
      2029992., 2055168., 1444458., 1463160., 1481898., 1500672., 1448850.,
      1467624., 1486434., 1505280., 1453242., 1472088., 1490970., 1509888.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      287828., 296960., 306116., 315296., 288932., 298112., 307316., 316544.,
      290036., 299264., 308516., 317792., 291140., 300416., 309716., 319040.,
      292244., 301568., 310916., 320288., 293348., 302720., 312116., 321536.,
      294452., 303872., 313316., 322784., 303284., 313088., 322916., 332768.,
      304388., 314240., 324116., 334016., 305492., 315392., 325316., 335264.,
      306596., 316544., 326516., 336512., 307700., 317696., 327716., 337760.,
      308804., 318848., 328916., 339008., 309908., 320000., 330116., 340256.,
      318740., 329216., 339716., 350240., 319844., 330368., 340916., 351488.,
      320948., 331520., 342116., 352736., 322052., 332672., 343316., 353984.,
      323156., 333824., 344516., 355232., 324260., 334976., 345716., 356480.,
      325364., 336128., 346916., 357728., 334196., 345344., 356516., 367712.,
      335300., 346496., 357716., 368960., 336404., 347648., 358916., 370208.,
      337508., 348800., 360116., 371456., 338612., 349952., 361316., 372704.,
      339716., 351104., 362516., 373952., 340820., 352256., 363716., 375200.,
      349652., 361472., 373316., 385184., 350756., 362624., 374516., 386432.,
      351860., 363776., 375716., 387680., 352964., 364928., 376916., 388928.,
      354068., 366080., 378116., 390176., 355172., 367232., 379316., 391424.,
      356276., 368384., 380516., 392672., 365108., 377600., 390116., 402656.,
      366212., 378752., 391316., 403904., 367316., 379904., 392516., 405152.,
      368420., 381056., 393716., 406400., 369524., 382208., 394916., 407648.,
      370628., 383360., 396116., 408896., 371732., 384512., 397316., 410144.,
      380564., 393728., 406916., 420128., 381668., 394880., 408116., 421376.,
      382772., 396032., 409316., 422624., 383876., 397184., 410516., 423872.,
      384980., 398336., 411716., 425120., 386084., 399488., 412916., 426368.,
      387188., 400640., 414116., 427616.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3250194., 3265764., 3284268., 3299856., 3318414., 3334020., 3352632.,
      3368256., 3261786., 3277428., 3296004., 3311664., 3330294., 3345972.,
      3364656., 3380352., 4252344., 4273104., 4297680., 4318464., 4343112.,
      4363920., 4388640., 4409472., 4267416., 4288272., 4312944., 4333824.,
      4358568., 4379472., 4404288., 4425216., 3125634., 3141204., 3159564.,
      3175152., 3193566., 3209172., 3227640., 3243264., 3136650., 3152292.,
      3170724., 3186384., 3204870., 3220548., 3239088., 3254784., 3147666.,
      3163380., 3181884., 3197616., 3216174., 3231924., 3250536., 3266304.,
      3412482., 3429060., 3448572., 3465168., 3484734., 3501348., 3520968.,
      3537600., 3424074., 3440724., 3460308., 3476976., 3496614., 3513300.,
      3532992., 3549696., 4463352., 4485456., 4511376., 4533504., 4559496.,
      4581648., 4607712., 4629888., 4478424., 4500624., 4526640., 4548864.,
      4574952., 4597200., 4623360., 4645632., 3279858., 3296436., 3315804.,
      3332400., 3351822., 3368436., 3387912., 3404544., 3290874., 3307524.,
      3326964., 3343632., 3363126., 3379812., 3399360., 3416064., 3301890.,
      3318612., 3338124., 3354864., 3374430., 3391188., 3410808., 3427584.,
      4582251., 4605606., 4632930., 4656312., 4683717., 4707126., 4734612.,
      4758048., 4597911., 4621374., 4648806., 4672296., 4699809., 4723326.,
      4750920., 4774464., 5987796., 6018936., 6055224., 6086400., 6122796.,
      6154008., 6190512., 6221760., 6008100., 6039384., 6075816., 6107136.,
      6143676., 6175032., 6211680., 6243072., 4395411., 4418766., 4445874.,
      4469256., 4496445., 4519854., 4547124., 4570560., 4410207., 4433670.,
      4460886., 4484376., 4511673., 4535190., 4562568., 4586112., 4425003.,
      4448574., 4475898., 4499496., 4526901., 4550526., 4578012., 4601664.,
      4801491., 4826358., 4855194., 4880088., 4909005., 4933926., 4962924.,
      4987872., 4817151., 4842126., 4871070., 4896072., 4925097., 4950126.,
      4979232., 5004288., 6272052., 6305208., 6343512., 6376704., 6415116.,
      6448344., 6486864., 6520128., 6292356., 6325656., 6364104., 6397440.,
      6435996., 6469368., 6508032., 6541440., 4602555., 4627422., 4656042.,
      4680936., 4709637., 4734558., 4763340., 4788288., 4617351., 4642326.,
      4671054., 4696056., 4724865., 4749894., 4778784., 4803840., 4632147.,
      4657230., 4686066., 4711176., 4740093., 4765230., 4794228., 4819392.,
      5020731., 5047110., 5077458., 5103864., 5134293., 5160726., 5191236.,
      5217696., 5036391., 5062878., 5093334., 5119848., 5150385., 5176926.,
      5207544., 5234112., 6556308., 6591480., 6631800., 6667008., 6707436.,
      6742680., 6783216., 6818496., 6576612., 6611928., 6652392., 6687744.,
      6728316., 6763704., 6804384., 6839808., 4809699., 4836078., 4866210.,
      4892616., 4922829., 4949262., 4979556., 5006016., 4824495., 4850982.,
      4881222., 4907736., 4938057., 4964598., 4995000., 5021568., 4839291.,
      4865886., 4896234., 4922856., 4953285., 4979934., 5010444., 5037120.,
      2881986., 2898564., 2917500., 2934096., 2953086., 2969700., 2988744.,
      3005376., 2891274., 2907924., 2926932., 2943600., 2962662., 2979348.,
      2998464., 3015168., 3756024., 3778128., 3803280., 3825408., 3850632.,
      3872784., 3898080., 3920256., 3768024., 3790224., 3815472., 3837696.,
      3863016., 3885264., 3910656., 3932928., 2749362., 2765940., 2784732.,
      2801328., 2820174., 2836788., 2855688., 2872320., 2758074., 2774724.,
      2793588., 2810256., 2829174., 2845860., 2864832., 2881536., 2766786.,
      2783508., 2802444., 2819184., 2838174., 2854932., 2873976., 2890752.,
      3012018., 3029604., 3049548., 3067152., 3087150., 3104772., 3124824.,
      3142464., 3021306., 3038964., 3058980., 3076656., 3096726., 3114420.,
      3134544., 3152256., 3924024., 3947472., 3973968., 3997440., 4024008.,
      4047504., 4074144., 4097664., 3936024., 3959568., 3986160., 4009728.,
      4036392., 4059984., 4086720., 4110336., 2871330., 2888916., 2908716.,
      2926320., 2946174., 2963796., 2983704., 3001344., 2880042., 2897700.,
      2917572., 2935248., 2955174., 2972868., 2992848., 3010560., 2888754.,
      2906484., 2926428., 2944176., 2964174., 2981940., 3001992., 3019776.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      566812., 575656., 585064., 593920., 603364., 612232., 621712., 630592.,
      568972., 577864., 587320., 596224., 605716., 614632., 624160., 633088.,
      571132., 580072., 589576., 598528., 608068., 617032., 626608., 635584.,
      573292., 582280., 591832., 600832., 610420., 619432., 629056., 638080.,
      575452., 584488., 594088., 603136., 612772., 621832., 631504., 640576.,
      577612., 586696., 596344., 605440., 615124., 624232., 633952., 643072.,
      579772., 588904., 598600., 607744., 617476., 626632., 636400., 645568.,
      597052., 606568., 616648., 626176., 636292., 645832., 655984., 665536.,
      599212., 608776., 618904., 628480., 638644., 648232., 658432., 668032.,
      601372., 610984., 621160., 630784., 640996., 650632., 660880., 670528.,
      603532., 613192., 623416., 633088., 643348., 653032., 663328., 673024.,
      605692., 615400., 625672., 635392., 645700., 655432., 665776., 675520.,
      607852., 617608., 627928., 637696., 648052., 657832., 668224., 678016.,
      610012., 619816., 630184., 640000., 650404., 660232., 670672., 680512.,
      627292., 637480., 648232., 658432., 669220., 679432., 690256., 700480.,
      629452., 639688., 650488., 660736., 671572., 681832., 692704., 702976.,
      631612., 641896., 652744., 663040., 673924., 684232., 695152., 705472.,
      633772., 644104., 655000., 665344., 676276., 686632., 697600., 707968.,
      635932., 646312., 657256., 667648., 678628., 689032., 700048., 710464.,
      638092., 648520., 659512., 669952., 680980., 691432., 702496., 712960.,
      640252., 650728., 661768., 672256., 683332., 693832., 704944., 715456.,
      657532., 668392., 679816., 690688., 702148., 713032., 724528., 735424.,
      659692., 670600., 682072., 692992., 704500., 715432., 726976., 737920.,
      661852., 672808., 684328., 695296., 706852., 717832., 729424., 740416.,
      664012., 675016., 686584., 697600., 709204., 720232., 731872., 742912.,
      666172., 677224., 688840., 699904., 711556., 722632., 734320., 745408.,
      668332., 679432., 691096., 702208., 713908., 725032., 736768., 747904.,
      670492., 681640., 693352., 704512., 716260., 727432., 739216., 750400.,
      687772., 699304., 711400., 722944., 735076., 746632., 758800., 770368.,
      689932., 701512., 713656., 725248., 737428., 749032., 761248., 772864.,
      692092., 703720., 715912., 727552., 739780., 751432., 763696., 775360.,
      694252., 705928., 718168., 729856., 742132., 753832., 766144., 777856.,
      696412., 708136., 720424., 732160., 744484., 756232., 768592., 780352.,
      698572., 710344., 722680., 734464., 746836., 758632., 771040., 782848.,
      700732., 712552., 724936., 736768., 749188., 761032., 773488., 785344.,
      718012., 730216., 742984., 755200., 768004., 780232., 793072., 805312.,
      720172., 732424., 745240., 757504., 770356., 782632., 795520., 807808.,
      722332., 734632., 747496., 759808., 772708., 785032., 797968., 810304.,
      724492., 736840., 749752., 762112., 775060., 787432., 800416., 812800.,
      726652., 739048., 752008., 764416., 777412., 789832., 802864., 815296.,
      728812., 741256., 754264., 766720., 779764., 792232., 805312., 817792.,
      730972., 743464., 756520., 769024., 782116., 794632., 807760., 820288.,
      748252., 761128., 774568., 787456., 800932., 813832., 827344., 840256.,
      750412., 763336., 776824., 789760., 803284., 816232., 829792., 842752.,
      752572., 765544., 779080., 792064., 805636., 818632., 832240., 845248.,
      754732., 767752., 781336., 794368., 807988., 821032., 834688., 847744.,
      756892., 769960., 783592., 796672., 810340., 823432., 837136., 850240.,
      759052., 772168., 785848., 798976., 812692., 825832., 839584., 852736.,
      761212., 774376., 788104., 801280., 815044., 828232., 842032., 855232.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x11x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6484818.,  6500388.,  6515958.,  6531528.,  6552948.,  6568536.,
      6584124.,  6599712.,  6621222.,  6636828.,  6652434.,  6668040.,
      6689640.,  6705264.,  6720888.,  6736512.,  6507930.,  6523572.,
      6539214.,  6554856.,  6576348.,  6592008.,  6607668.,  6623328.,
      6644910.,  6660588.,  6676266.,  6691944.,  6713616.,  6729312.,
      6745008.,  6760704.,  8483928.,  8504688.,  8525448.,  8546208.,
      8574576.,  8595360.,  8616144.,  8636928.,  8665416.,  8686224.,
      8707032.,  8727840.,  8756448.,  8777280.,  8798112.,  8818944.,
      8513976.,  8534832.,  8555688.,  8576544.,  8605008.,  8625888.,
      8646768.,  8667648.,  8696232.,  8717136.,  8738040.,  8758944.,
      8787648.,  8808576.,  8829504.,  8850432.,  6235698.,  6251268.,
      6266838.,  6282408.,  6303540.,  6319128.,  6334716.,  6350304.,
      6371526.,  6387132.,  6402738.,  6418344.,  6439656.,  6455280.,
      6470904.,  6486528.,  6257658.,  6273300.,  6288942.,  6304584.,
      6325788.,  6341448.,  6357108.,  6372768.,  6394062.,  6409740.,
      6425418.,  6441096.,  6462480.,  6478176.,  6493872.,  6509568.,
      6279618.,  6295332.,  6311046.,  6326760.,  6348036.,  6363768.,
      6379500.,  6395232.,  6416598.,  6432348.,  6448098.,  6463848.,
      6485304.,  6501072.,  6516840.,  6532608.,  6808386.,  6824964.,
      6841542.,  6858120.,  6880548.,  6897144.,  6913740.,  6930336.,
      6952854.,  6969468.,  6986082.,  7002696.,  7025304.,  7041936.,
      7058568.,  7075200.,  6831498.,  6848148.,  6864798.,  6881448.,
      6903948.,  6920616.,  6937284.,  6953952.,  6976542.,  6993228.,
      7009914.,  7026600.,  7049280.,  7065984.,  7082688.,  7099392.,
      8904600.,  8926704.,  8948808.,  8970912.,  9000624.,  9022752.,
      9044880.,  9067008.,  9096840.,  9118992.,  9141144.,  9163296.,
      9193248.,  9215424.,  9237600.,  9259776.,  8934648.,  8956848.,
      8979048.,  9001248.,  9031056.,  9053280.,  9075504.,  9097728.,
      9127656.,  9149904.,  9172152.,  9194400.,  9224448.,  9246720.,
      9268992.,  9291264.,  6543138.,  6559716.,  6576294.,  6592872.,
      6615012.,  6631608.,  6648204.,  6664800.,  6687030.,  6703644.,
      6720258.,  6736872.,  6759192.,  6775824.,  6792456.,  6809088.,
      6565098.,  6581748.,  6598398.,  6615048.,  6637260.,  6653928.,
      6670596.,  6687264.,  6709566.,  6726252.,  6742938.,  6759624.,
      6782016.,  6798720.,  6815424.,  6832128.,  6587058.,  6603780.,
      6620502.,  6637224.,  6659508.,  6676248.,  6692988.,  6709728.,
      6732102.,  6748860.,  6765618.,  6782376.,  6804840.,  6821616.,
      6838392.,  6855168.,  9141147.,  9164502.,  9187857.,  9211212.,
      9242478.,  9265860.,  9289242.,  9312624.,  9344025.,  9367434.,
      9390843.,  9414252.,  9445788.,  9469224.,  9492660.,  9516096.,
      9172359.,  9195822.,  9219285.,  9242748.,  9274122.,  9297612.,
      9321102.,  9344592.,  9376101.,  9399618.,  9423135.,  9446652.,
      9478296.,  9501840.,  9525384.,  9548928.,  11944452., 11975592.,
      12006732., 12037872., 12079272., 12110448., 12141624., 12172800.,
      12214380., 12245592., 12276804., 12308016., 12349776., 12381024.,
      12412272., 12443520., 11984916., 12016200., 12047484., 12078768.,
      12120312., 12151632., 12182952., 12214272., 12255996., 12287352.,
      12318708., 12350064., 12391968., 12423360., 12454752., 12486144.,
      8767467.,  8790822.,  8814177.,  8837532.,  8868366.,  8891748.,
      8915130.,  8938512.,  8969481.,  8992890.,  9016299.,  9039708.,
      9070812.,  9094248.,  9117684.,  9141120.,  8796951.,  8820414.,
      8843877.,  8867340.,  8898282.,  8921772.,  8945262.,  8968752.,
      8999829.,  9023346.,  9046863.,  9070380.,  9101592.,  9125136.,
      9148680.,  9172224.,  8826435.,  8850006.,  8873577.,  8897148.,
      8928198.,  8951796.,  8975394.,  8998992.,  9030177.,  9053802.,
      9077427.,  9101052.,  9132372.,  9156024.,  9179676.,  9203328.,
      9578115.,  9602982.,  9627849.,  9652716.,  9685494.,  9710388.,
      9735282.,  9760176.,  9793089.,  9818010.,  9842931.,  9867852.,
      9900900.,  9925848.,  9950796.,  9975744.,  9609327.,  9634302.,
      9659277.,  9684252.,  9717138.,  9742140.,  9767142.,  9792144.,
      9825165.,  9850194.,  9875223.,  9900252.,  9933408.,  9958464.,
      9983520.,  10008576., 12510948., 12544104., 12577260., 12610416.,
      12653832., 12687024., 12720216., 12753408., 12797004., 12830232.,
      12863460., 12896688., 12940464., 12973728., 13006992., 13040256.,
      12551412., 12584712., 12618012., 12651312., 12694872., 12728208.,
      12761544., 12794880., 12838620., 12871992., 12905364., 12938736.,
      12982656., 13016064., 13049472., 13082880., 9180243.,  9205110.,
      9229977.,  9254844.,  9287190.,  9312084.,  9336978.,  9361872.,
      9394353.,  9419274.,  9444195.,  9469116.,  9501732.,  9526680.,
      9551628.,  9576576.,  9209727.,  9234702.,  9259677.,  9284652.,
      9317106.,  9342108.,  9367110.,  9392112.,  9424701.,  9449730.,
      9474759.,  9499788.,  9532512.,  9557568.,  9582624.,  9607680.,
      9239211.,  9264294.,  9289377.,  9314460.,  9347022.,  9372132.,
      9397242.,  9422352.,  9455049.,  9480186.,  9505323.,  9530460.,
      9563292.,  9588456.,  9613620.,  9638784.,  10015083., 10041462.,
      10067841., 10094220., 10128510., 10154916., 10181322., 10207728.,
      10242153., 10268586., 10295019., 10321452., 10356012., 10382472.,
      10408932., 10435392., 10046295., 10072782., 10099269., 10125756.,
      10160154., 10186668., 10213182., 10239696., 10274229., 10300770.,
      10327311., 10353852., 10388520., 10415088., 10441656., 10468224.,
      13077444., 13112616., 13147788., 13182960., 13228392., 13263600.,
      13298808., 13334016., 13379628., 13414872., 13450116., 13485360.,
      13531152., 13566432., 13601712., 13636992., 13117908., 13153224.,
      13188540., 13223856., 13269432., 13304784., 13340136., 13375488.,
      13421244., 13456632., 13492020., 13527408., 13573344., 13608768.,
      13644192., 13679616., 9593019.,  9619398.,  9645777.,  9672156.,
      9706014.,  9732420.,  9758826.,  9785232.,  9819225.,  9845658.,
      9872091.,  9898524.,  9932652.,  9959112.,  9985572.,  10012032.,
      9622503.,  9648990.,  9675477.,  9701964.,  9735930.,  9762444.,
      9788958.,  9815472.,  9849573.,  9876114.,  9902655.,  9929196.,
      9963432.,  9990000.,  10016568., 10043136., 9651987.,  9678582.,
      9705177.,  9731772.,  9765846.,  9792468.,  9819090.,  9845712.,
      9879921.,  9906570.,  9933219.,  9959868.,  9994212.,  10020888.,
      10047564., 10074240., 5747394.,  5763972.,  5780550.,  5797128.,
      5818404.,  5835000.,  5851596.,  5868192.,  5889558.,  5906172.,
      5922786.,  5939400.,  5960856.,  5977488.,  5994120.,  6010752.,
      5765898.,  5782548.,  5799198.,  5815848.,  5837196.,  5853864.,
      5870532.,  5887200.,  5908638.,  5925324.,  5942010.,  5958696.,
      5980224.,  5996928.,  6013632.,  6030336.,  7489944.,  7512048.,
      7534152.,  7556256.,  7584432.,  7606560.,  7628688.,  7650816.,
      7679112.,  7701264.,  7723416.,  7745568.,  7773984.,  7796160.,
      7818336.,  7840512.,  7513848.,  7536048.,  7558248.,  7580448.,
      7608720.,  7630944.,  7653168.,  7675392.,  7703784.,  7726032.,
      7748280.,  7770528.,  7799040.,  7821312.,  7843584.,  7865856.,
      5482146.,  5498724.,  5515302.,  5531880.,  5552868.,  5569464.,
      5586060.,  5602656.,  5623734.,  5640348.,  5656962.,  5673576.,
      5694744.,  5711376.,  5728008.,  5744640.,  5499498.,  5516148.,
      5532798.,  5549448.,  5570508.,  5587176.,  5603844.,  5620512.,
      5641662.,  5658348.,  5675034.,  5691720.,  5712960.,  5729664.,
      5746368.,  5763072.,  5516850.,  5533572.,  5550294.,  5567016.,
      5588148.,  5604888.,  5621628.,  5638368.,  5659590.,  5676348.,
      5693106.,  5709864.,  5731176.,  5747952.,  5764728.,  5781504.,
      6006450.,  6024036.,  6041622.,  6059208.,  6081492.,  6099096.,
      6116700.,  6134304.,  6156678.,  6174300.,  6191922.,  6209544.,
      6232008.,  6249648.,  6267288.,  6284928.,  6024954.,  6042612.,
      6060270.,  6077928.,  6100284.,  6117960.,  6135636.,  6153312.,
      6175758.,  6193452.,  6211146.,  6228840.,  6251376.,  6269088.,
      6286800.,  6304512.,  7824600.,  7848048.,  7871496.,  7894944.,
      7924464.,  7947936.,  7971408.,  7994880.,  8024520.,  8048016.,
      8071512.,  8095008.,  8124768.,  8148288.,  8171808.,  8195328.,
      7848504.,  7872048.,  7895592.,  7919136.,  7948752.,  7972320.,
      7995888.,  8019456.,  8049192.,  8072784.,  8096376.,  8119968.,
      8149824.,  8173440.,  8197056.,  8220672.,  5725074.,  5742660.,
      5760246.,  5777832.,  5799828.,  5817432.,  5835036.,  5852640.,
      5874726.,  5892348.,  5909970.,  5927592.,  5949768.,  5967408.,
      5985048.,  6002688.,  5742426.,  5760084.,  5777742.,  5795400.,
      5817468.,  5835144.,  5852820.,  5870496.,  5892654.,  5910348.,
      5928042.,  5945736.,  5967984.,  5985696.,  6003408.,  6021120.,
      5759778.,  5777508.,  5795238.,  5812968.,  5835108.,  5852856.,
      5870604.,  5888352.,  5910582.,  5928348.,  5946114.,  5963880.,
      5986200.,  6003984.,  6021768.,  6039552.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x11x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1124780., 1133624., 1142468., 1151312., 1161272., 1170128., 1178984.,
      1187840., 1197860., 1206728., 1215596., 1224464., 1234544., 1243424.,
      1252304., 1261184., 1129052., 1137944., 1146836., 1155728., 1165736.,
      1174640., 1183544., 1192448., 1202516., 1211432., 1220348., 1229264.,
      1239392., 1248320., 1257248., 1266176., 1133324., 1142264., 1151204.,
      1160144., 1170200., 1179152., 1188104., 1197056., 1207172., 1216136.,
      1225100., 1234064., 1244240., 1253216., 1262192., 1271168., 1137596.,
      1146584., 1155572., 1164560., 1174664., 1183664., 1192664., 1201664.,
      1211828., 1220840., 1229852., 1238864., 1249088., 1258112., 1267136.,
      1276160., 1141868., 1150904., 1159940., 1168976., 1179128., 1188176.,
      1197224., 1206272., 1216484., 1225544., 1234604., 1243664., 1253936.,
      1263008., 1272080., 1281152., 1146140., 1155224., 1164308., 1173392.,
      1183592., 1192688., 1201784., 1210880., 1221140., 1230248., 1239356.,
      1248464., 1258784., 1267904., 1277024., 1286144., 1150412., 1159544.,
      1168676., 1177808., 1188056., 1197200., 1206344., 1215488., 1225796.,
      1234952., 1244108., 1253264., 1263632., 1272800., 1281968., 1291136.,
      1184588., 1194104., 1203620., 1213136., 1223768., 1233296., 1242824.,
      1252352., 1263044., 1272584., 1282124., 1291664., 1302416., 1311968.,
      1321520., 1331072., 1188860., 1198424., 1207988., 1217552., 1228232.,
      1237808., 1247384., 1256960., 1267700., 1277288., 1286876., 1296464.,
      1307264., 1316864., 1326464., 1336064., 1193132., 1202744., 1212356.,
      1221968., 1232696., 1242320., 1251944., 1261568., 1272356., 1281992.,
      1291628., 1301264., 1312112., 1321760., 1331408., 1341056., 1197404.,
      1207064., 1216724., 1226384., 1237160., 1246832., 1256504., 1266176.,
      1277012., 1286696., 1296380., 1306064., 1316960., 1326656., 1336352.,
      1346048., 1201676., 1211384., 1221092., 1230800., 1241624., 1251344.,
      1261064., 1270784., 1281668., 1291400., 1301132., 1310864., 1321808.,
      1331552., 1341296., 1351040., 1205948., 1215704., 1225460., 1235216.,
      1246088., 1255856., 1265624., 1275392., 1286324., 1296104., 1305884.,
      1315664., 1326656., 1336448., 1346240., 1356032., 1210220., 1220024.,
      1229828., 1239632., 1250552., 1260368., 1270184., 1280000., 1290980.,
      1300808., 1310636., 1320464., 1331504., 1341344., 1351184., 1361024.,
      1244396., 1254584., 1264772., 1274960., 1286264., 1296464., 1306664.,
      1316864., 1328228., 1338440., 1348652., 1358864., 1370288., 1380512.,
      1390736., 1400960., 1248668., 1258904., 1269140., 1279376., 1290728.,
      1300976., 1311224., 1321472., 1332884., 1343144., 1353404., 1363664.,
      1375136., 1385408., 1395680., 1405952., 1252940., 1263224., 1273508.,
      1283792., 1295192., 1305488., 1315784., 1326080., 1337540., 1347848.,
      1358156., 1368464., 1379984., 1390304., 1400624., 1410944., 1257212.,
      1267544., 1277876., 1288208., 1299656., 1310000., 1320344., 1330688.,
      1342196., 1352552., 1362908., 1373264., 1384832., 1395200., 1405568.,
      1415936., 1261484., 1271864., 1282244., 1292624., 1304120., 1314512.,
      1324904., 1335296., 1346852., 1357256., 1367660., 1378064., 1389680.,
      1400096., 1410512., 1420928., 1265756., 1276184., 1286612., 1297040.,
      1308584., 1319024., 1329464., 1339904., 1351508., 1361960., 1372412.,
      1382864., 1394528., 1404992., 1415456., 1425920., 1270028., 1280504.,
      1290980., 1301456., 1313048., 1323536., 1334024., 1344512., 1356164.,
      1366664., 1377164., 1387664., 1399376., 1409888., 1420400., 1430912.,
      1304204., 1315064., 1325924., 1336784., 1348760., 1359632., 1370504.,
      1381376., 1393412., 1404296., 1415180., 1426064., 1438160., 1449056.,
      1459952., 1470848., 1308476., 1319384., 1330292., 1341200., 1353224.,
      1364144., 1375064., 1385984., 1398068., 1409000., 1419932., 1430864.,
      1443008., 1453952., 1464896., 1475840., 1312748., 1323704., 1334660.,
      1345616., 1357688., 1368656., 1379624., 1390592., 1402724., 1413704.,
      1424684., 1435664., 1447856., 1458848., 1469840., 1480832., 1317020.,
      1328024., 1339028., 1350032., 1362152., 1373168., 1384184., 1395200.,
      1407380., 1418408., 1429436., 1440464., 1452704., 1463744., 1474784.,
      1485824., 1321292., 1332344., 1343396., 1354448., 1366616., 1377680.,
      1388744., 1399808., 1412036., 1423112., 1434188., 1445264., 1457552.,
      1468640., 1479728., 1490816., 1325564., 1336664., 1347764., 1358864.,
      1371080., 1382192., 1393304., 1404416., 1416692., 1427816., 1438940.,
      1450064., 1462400., 1473536., 1484672., 1495808., 1329836., 1340984.,
      1352132., 1363280., 1375544., 1386704., 1397864., 1409024., 1421348.,
      1432520., 1443692., 1454864., 1467248., 1478432., 1489616., 1500800.,
      1364012., 1375544., 1387076., 1398608., 1411256., 1422800., 1434344.,
      1445888., 1458596., 1470152., 1481708., 1493264., 1506032., 1517600.,
      1529168., 1540736., 1368284., 1379864., 1391444., 1403024., 1415720.,
      1427312., 1438904., 1450496., 1463252., 1474856., 1486460., 1498064.,
      1510880., 1522496., 1534112., 1545728., 1372556., 1384184., 1395812.,
      1407440., 1420184., 1431824., 1443464., 1455104., 1467908., 1479560.,
      1491212., 1502864., 1515728., 1527392., 1539056., 1550720., 1376828.,
      1388504., 1400180., 1411856., 1424648., 1436336., 1448024., 1459712.,
      1472564., 1484264., 1495964., 1507664., 1520576., 1532288., 1544000.,
      1555712., 1381100., 1392824., 1404548., 1416272., 1429112., 1440848.,
      1452584., 1464320., 1477220., 1488968., 1500716., 1512464., 1525424.,
      1537184., 1548944., 1560704., 1385372., 1397144., 1408916., 1420688.,
      1433576., 1445360., 1457144., 1468928., 1481876., 1493672., 1505468.,
      1517264., 1530272., 1542080., 1553888., 1565696., 1389644., 1401464.,
      1413284., 1425104., 1438040., 1449872., 1461704., 1473536., 1486532.,
      1498376., 1510220., 1522064., 1535120., 1546976., 1558832., 1570688.,
      1423820., 1436024., 1448228., 1460432., 1473752., 1485968., 1498184.,
      1510400., 1523780., 1536008., 1548236., 1560464., 1573904., 1586144.,
      1598384., 1610624., 1428092., 1440344., 1452596., 1464848., 1478216.,
      1490480., 1502744., 1515008., 1528436., 1540712., 1552988., 1565264.,
      1578752., 1591040., 1603328., 1615616., 1432364., 1444664., 1456964.,
      1469264., 1482680., 1494992., 1507304., 1519616., 1533092., 1545416.,
      1557740., 1570064., 1583600., 1595936., 1608272., 1620608., 1436636.,
      1448984., 1461332., 1473680., 1487144., 1499504., 1511864., 1524224.,
      1537748., 1550120., 1562492., 1574864., 1588448., 1600832., 1613216.,
      1625600., 1440908., 1453304., 1465700., 1478096., 1491608., 1504016.,
      1516424., 1528832., 1542404., 1554824., 1567244., 1579664., 1593296.,
      1605728., 1618160., 1630592., 1445180., 1457624., 1470068., 1482512.,
      1496072., 1508528., 1520984., 1533440., 1547060., 1559528., 1571996.,
      1584464., 1598144., 1610624., 1623104., 1635584., 1449452., 1461944.,
      1474436., 1486928., 1500536., 1513040., 1525544., 1538048., 1551716.,
      1564232., 1576748., 1589264., 1602992., 1615520., 1628048., 1640576.,
      1483628., 1496504., 1509380., 1522256., 1536248., 1549136., 1562024.,
      1574912., 1588964., 1601864., 1614764., 1627664., 1641776., 1654688.,
      1667600., 1680512., 1487900., 1500824., 1513748., 1526672., 1540712.,
      1553648., 1566584., 1579520., 1593620., 1606568., 1619516., 1632464.,
      1646624., 1659584., 1672544., 1685504., 1492172., 1505144., 1518116.,
      1531088., 1545176., 1558160., 1571144., 1584128., 1598276., 1611272.,
      1624268., 1637264., 1651472., 1664480., 1677488., 1690496., 1496444.,
      1509464., 1522484., 1535504., 1549640., 1562672., 1575704., 1588736.,
      1602932., 1615976., 1629020., 1642064., 1656320., 1669376., 1682432.,
      1695488., 1500716., 1513784., 1526852., 1539920., 1554104., 1567184.,
      1580264., 1593344., 1607588., 1620680., 1633772., 1646864., 1661168.,
      1674272., 1687376., 1700480., 1504988., 1518104., 1531220., 1544336.,
      1558568., 1571696., 1584824., 1597952., 1612244., 1625384., 1638524.,
      1651664., 1666016., 1679168., 1692320., 1705472., 1509260., 1522424.,
      1535588., 1548752., 1563032., 1576208., 1589384., 1602560., 1616900.,
      1630088., 1643276., 1656464., 1670864., 1684064., 1697264., 1710464.};
  const std::array<int, 4> in_shape = {{3, 11, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      46776., 46968., 68466.,  68745.,  69024.,  44652., 44832.,
      63099., 63360., 92250.,  92628.,  93006.,  60084., 60327.,
      65970., 66231., 96408.,  96786.,  97164.,  62757., 63000.,
      68841., 69102., 100566., 100944., 101322., 65430., 65673.,
      71712., 71973., 104724., 105102., 105480., 68103., 68346.,
      41580., 41736., 60573.,  60798.,  61023.,  39288., 39432.,
      43296., 43452., 63048.,  63273.,  63498.,  40872., 41016.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      16746., 16824., 16902., 16980., 17058., 17136., 17214., 17604., 17682.,
      17760., 17838., 17916., 17994., 18072., 18462., 18540., 18618., 18696.,
      18774., 18852., 18930., 19320., 19398., 19476., 19554., 19632., 19710.,
      19788., 20178., 20256., 20334., 20412., 20490., 20568., 20646., 21036.,
      21114., 21192., 21270., 21348., 21426., 21504., 21894., 21972., 22050.,
      22128., 22206., 22284., 22362.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      91248.,  93552.,  91620.,  93936.,  133476., 136932., 134016., 137490.,
      134556., 138048., 86988.,  89304.,  87336.,  89664.,  122940., 126198.,
      123444., 126720., 179613., 184500., 180342., 185256., 181071., 186012.,
      116892., 120168., 117360., 120654., 128484., 131940., 128988., 132462.,
      187632., 192816., 188361., 193572., 189090., 194328., 122040., 125514.,
      122508., 126000., 134028., 137682., 134532., 138204., 195651., 201132.,
      196380., 201888., 197109., 202644., 127188., 130860., 127656., 131346.,
      139572., 143424., 140076., 143946., 203670., 209448., 204399., 210204.,
      205128., 210960., 132336., 136206., 132804., 136692., 80724.,  83160.,
      81024.,  83472.,  117492., 121146., 117924., 121596., 118356., 122046.,
      76128.,  78576.,  76404.,  78864.,  84024.,  86592.,  84324.,  86904.,
      122244., 126096., 122676., 126546., 123108., 126996., 79164.,  81744.,
      79440.,  82032.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      31608., 33492., 31752., 33648., 31896., 33804., 32040., 33960., 32184.,
      34116., 32328., 34272., 32472., 34428., 33192., 35208., 33336., 35364.,
      33480., 35520., 33624., 35676., 33768., 35832., 33912., 35988., 34056.,
      36144., 34776., 36924., 34920., 37080., 35064., 37236., 35208., 37392.,
      35352., 37548., 35496., 37704., 35640., 37860., 36360., 38640., 36504.,
      38796., 36648., 38952., 36792., 39108., 36936., 39264., 37080., 39420.,
      37224., 39576., 37944., 40356., 38088., 40512., 38232., 40668., 38376.,
      40824., 38520., 40980., 38664., 41136., 38808., 41292., 39528., 42072.,
      39672., 42228., 39816., 42384., 39960., 42540., 40104., 42696., 40248.,
      42852., 40392., 43008., 41112., 43788., 41256., 43944., 41400., 44100.,
      41544., 44256., 41688., 44412., 41832., 44568., 41976., 44724.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      180192., 182496., 184800., 187104., 180924., 183240., 185556., 187872.,
      263496., 266952., 270408., 273864., 264558., 268032., 271506., 274980.,
      265620., 269112., 272604., 276096., 171660., 173976., 176292., 178608.,
      172344., 174672., 177000., 179328., 242622., 245880., 249138., 252396.,
      243612., 246888., 250164., 253440., 354339., 359226., 364113., 369000.,
      355770., 360684., 365598., 370512., 357201., 362142., 367083., 372024.,
      230508., 233784., 237060., 240336., 231426., 234720., 238014., 241308.,
      253512., 256968., 260424., 263880., 254502., 257976., 261450., 264924.,
      370080., 375264., 380448., 385632., 371511., 376722., 381933., 387144.,
      372942., 378180., 383418., 388656., 240606., 244080., 247554., 251028.,
      241524., 245016., 248508., 252000., 264402., 268056., 271710., 275364.,
      265392., 269064., 272736., 276408., 385821., 391302., 396783., 402264.,
      387252., 392760., 398268., 403776., 388683., 394218., 399753., 405288.,
      250704., 254376., 258048., 261720., 251622., 255312., 259002., 262692.,
      275292., 279144., 282996., 286848., 276282., 280152., 284022., 287892.,
      401562., 407340., 413118., 418896., 402993., 408798., 414603., 420408.,
      404424., 410256., 416088., 421920., 260802., 264672., 268542., 272412.,
      261720., 265608., 269496., 273384., 159012., 161448., 163884., 166320.,
      159600., 162048., 164496., 166944., 231330., 234984., 238638., 242292.,
      232176., 235848., 239520., 243192., 233022., 236712., 240402., 244092.,
      149808., 152256., 154704., 157152., 150348., 152808., 155268., 157728.,
      165480., 168048., 170616., 173184., 166068., 168648., 171228., 173808.,
      240636., 244488., 248340., 252192., 241482., 245352., 249222., 253092.,
      242328., 246216., 250104., 253992., 155748., 158328., 160908., 163488.,
      156288., 158880., 161472., 164064.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      61332., 63216., 65100., 66984., 61608., 63504., 65400., 67296., 61884.,
      63792., 65700., 67608., 62160., 64080., 66000., 67920., 62436., 64368.,
      66300., 68232., 62712., 64656., 66600., 68544., 62988., 64944., 66900.,
      68856., 64368., 66384., 68400., 70416., 64644., 66672., 68700., 70728.,
      64920., 66960., 69000., 71040., 65196., 67248., 69300., 71352., 65472.,
      67536., 69600., 71664., 65748., 67824., 69900., 71976., 66024., 68112.,
      70200., 72288., 67404., 69552., 71700., 73848., 67680., 69840., 72000.,
      74160., 67956., 70128., 72300., 74472., 68232., 70416., 72600., 74784.,
      68508., 70704., 72900., 75096., 68784., 70992., 73200., 75408., 69060.,
      71280., 73500., 75720., 70440., 72720., 75000., 77280., 70716., 73008.,
      75300., 77592., 70992., 73296., 75600., 77904., 71268., 73584., 75900.,
      78216., 71544., 73872., 76200., 78528., 71820., 74160., 76500., 78840.,
      72096., 74448., 76800., 79152., 73476., 75888., 78300., 80712., 73752.,
      76176., 78600., 81024., 74028., 76464., 78900., 81336., 74304., 76752.,
      79200., 81648., 74580., 77040., 79500., 81960., 74856., 77328., 79800.,
      82272., 75132., 77616., 80100., 82584., 76512., 79056., 81600., 84144.,
      76788., 79344., 81900., 84456., 77064., 79632., 82200., 84768., 77340.,
      79920., 82500., 85080., 77616., 80208., 82800., 85392., 77892., 80496.,
      83100., 85704., 78168., 80784., 83400., 86016., 79548., 82224., 84900.,
      87576., 79824., 82512., 85200., 87888., 80100., 82800., 85500., 88200.,
      80376., 83088., 85800., 88512., 80652., 83376., 86100., 88824., 80928.,
      83664., 86400., 89136., 81204., 83952., 86700., 89448.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      182124., 187104., 182868., 187872., 266412., 273864., 267492., 274980.,
      268572., 276096., 173628., 178608., 174324., 179328., 245376., 252396.,
      246384., 253440., 358497., 369000., 359955., 370512., 361413., 372024.,
      233316., 240336., 234252., 241308., 256464., 263880., 257472., 264924.,
      374535., 385632., 375993., 387144., 377451., 388656., 243612., 251028.,
      244548., 252000., 267552., 275364., 268560., 276408., 390573., 402264.,
      392031., 403776., 393489., 405288., 253908., 261720., 254844., 262692.,
      278640., 286848., 279648., 287892., 406611., 418896., 408069., 420408.,
      409527., 421920., 264204., 272412., 265140., 273384., 161148., 166320.,
      161748., 166944., 234552., 242292., 235416., 243192., 236280., 244092.,
      151980., 157152., 152532., 157728., 167748., 173184., 168348., 173808.,
      244056., 252192., 244920., 253092., 245784., 253992., 158052., 163488.,
      158604., 164064.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      63072., 66984., 63360., 67296., 63648., 67608., 63936., 67920., 64224.,
      68232., 64512., 68544., 64800., 68856., 66240., 70416., 66528., 70728.,
      66816., 71040., 67104., 71352., 67392., 71664., 67680., 71976., 67968.,
      72288., 69408., 73848., 69696., 74160., 69984., 74472., 70272., 74784.,
      70560., 75096., 70848., 75408., 71136., 75720., 72576., 77280., 72864.,
      77592., 73152., 77904., 73440., 78216., 73728., 78528., 74016., 78840.,
      74304., 79152., 75744., 80712., 76032., 81024., 76320., 81336., 76608.,
      81648., 76896., 81960., 77184., 82272., 77472., 82584., 78912., 84144.,
      79200., 84456., 79488., 84768., 79776., 85080., 80064., 85392., 80352.,
      85704., 80640., 86016., 82080., 87576., 82368., 87888., 82656., 88200.,
      82944., 88512., 83232., 88824., 83520., 89136., 83808., 89448.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      359652., 364248., 369600., 374208., 361116., 365736., 371112., 375744.,
      525930., 532824., 540816., 547728., 528054., 534984., 543012., 549960.,
      530178., 537144., 545208., 552192., 342636., 347256., 352584., 357216.,
      344004., 348648., 354000., 358656., 484254., 490752., 498276., 504792.,
      486234., 492768., 500328., 506880., 707247., 716994., 728226., 738000.,
      710109., 719910., 731196., 741024., 712971., 722826., 734166., 744048.,
      460098., 466632., 474120., 480672., 461934., 468504., 476028., 482616.,
      506034., 512928., 520848., 527760., 508014., 514944., 522900., 529848.,
      738729., 749070., 760896., 771264., 741591., 751986., 763866., 774288.,
      744453., 754902., 766836., 777312., 480294., 487224., 495108., 502056.,
      482130., 489096., 497016., 504000., 527814., 535104., 543420., 550728.,
      529794., 537120., 545472., 552816., 770211., 781146., 793566., 804528.,
      773073., 784062., 796536., 807552., 775935., 786978., 799506., 810576.,
      500490., 507816., 516096., 523440., 502326., 509688., 518004., 525384.,
      549594., 557280., 565992., 573696., 551574., 559296., 568044., 575784.,
      801693., 813222., 826236., 837792., 804555., 816138., 829206., 840816.,
      807417., 819054., 832176., 843840., 520686., 528408., 537084., 544824.,
      522522., 530280., 538992., 546768., 317436., 322296., 327768., 332640.,
      318612., 323496., 328992., 333888., 461814., 469104., 477276., 484584.,
      463506., 470832., 479040., 486384., 465198., 472560., 480804., 488184.,
      299076., 303960., 309408., 314304., 300156., 305064., 310536., 315456.,
      330372., 335496., 341232., 346368., 331548., 336696., 342456., 347616.,
      480426., 488112., 496680., 504384., 482118., 489840., 498444., 506184.,
      483810., 491568., 500208., 507984., 310956., 316104., 321816., 326976.,
      312036., 317208., 322944., 328128.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      122388., 126144., 130200., 133968., 122940., 126720., 130800., 134592.,
      123492., 127296., 131400., 135216., 124044., 127872., 132000., 135840.,
      124596., 128448., 132600., 136464., 125148., 129024., 133200., 137088.,
      125700., 129600., 133800., 137712., 128460., 132480., 136800., 140832.,
      129012., 133056., 137400., 141456., 129564., 133632., 138000., 142080.,
      130116., 134208., 138600., 142704., 130668., 134784., 139200., 143328.,
      131220., 135360., 139800., 143952., 131772., 135936., 140400., 144576.,
      134532., 138816., 143400., 147696., 135084., 139392., 144000., 148320.,
      135636., 139968., 144600., 148944., 136188., 140544., 145200., 149568.,
      136740., 141120., 145800., 150192., 137292., 141696., 146400., 150816.,
      137844., 142272., 147000., 151440., 140604., 145152., 150000., 154560.,
      141156., 145728., 150600., 155184., 141708., 146304., 151200., 155808.,
      142260., 146880., 151800., 156432., 142812., 147456., 152400., 157056.,
      143364., 148032., 153000., 157680., 143916., 148608., 153600., 158304.,
      146676., 151488., 156600., 161424., 147228., 152064., 157200., 162048.,
      147780., 152640., 157800., 162672., 148332., 153216., 158400., 163296.,
      148884., 153792., 159000., 163920., 149436., 154368., 159600., 164544.,
      149988., 154944., 160200., 165168., 152748., 157824., 163200., 168288.,
      153300., 158400., 163800., 168912., 153852., 158976., 164400., 169536.,
      154404., 159552., 165000., 170160., 154956., 160128., 165600., 170784.,
      155508., 160704., 166200., 171408., 156060., 161280., 166800., 172032.,
      158820., 164160., 169800., 175152., 159372., 164736., 170400., 175776.,
      159924., 165312., 171000., 176400., 160476., 165888., 171600., 177024.,
      161028., 166464., 172200., 177648., 161580., 167040., 172800., 178272.,
      162132., 167616., 173400., 178896.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      714708.,  719304.,  723900.,  728496.,  734592.,  739200.,  743808.,
      748416.,  717612.,  722232.,  726852.,  731472.,  737592.,  742224.,
      746856.,  751488.,  1044966., 1051860., 1058754., 1065648., 1074720.,
      1081632., 1088544., 1095456., 1049178., 1056108., 1063038., 1069968.,
      1079076., 1086024., 1092972., 1099920., 1053390., 1060356., 1067322.,
      1074288., 1083432., 1090416., 1097400., 1104384., 680652.,  685272.,
      689892.,  694512.,  700536.,  705168.,  709800.,  714432.,  683364.,
      688008.,  692652.,  697296.,  703344.,  708000.,  712656.,  717312.,
      962010.,  968508.,  975006.,  981504.,  990036.,  996552.,  1003068.,
      1009584., 965934.,  972468.,  979002.,  985536.,  994104.,  1000656.,
      1007208., 1013760., 1404747., 1414494., 1424241., 1433988., 1446678.,
      1456452., 1466226., 1476000., 1410417., 1420218., 1430019., 1439820.,
      1452564., 1462392., 1472220., 1482048., 1416087., 1425942., 1435797.,
      1445652., 1458450., 1468332., 1478214., 1488096., 913662.,  920196.,
      926730.,  933264.,  941688.,  948240.,  954792.,  961344.,  917298.,
      923868.,  930438.,  937008.,  945468.,  952056.,  958644.,  965232.,
      1005174., 1012068., 1018962., 1025856., 1034784., 1041696., 1048608.,
      1055520., 1009098., 1016028., 1022958., 1029888., 1038852., 1045800.,
      1052748., 1059696., 1467117., 1477458., 1487799., 1498140., 1511424.,
      1521792., 1532160., 1542528., 1472787., 1483182., 1493577., 1503972.,
      1517310., 1527732., 1538154., 1548576., 1478457., 1488906., 1499355.,
      1509804., 1523196., 1533672., 1544148., 1554624., 953658.,  960588.,
      967518.,  974448.,  983268.,  990216.,  997164.,  1004112., 957294.,
      964260.,  971226.,  978192.,  987048.,  994032.,  1001016., 1008000.,
      1048338., 1055628., 1062918., 1070208., 1079532., 1086840., 1094148.,
      1101456., 1052262., 1059588., 1066914., 1074240., 1083600., 1090944.,
      1098288., 1105632., 1529487., 1540422., 1551357., 1562292., 1576170.,
      1587132., 1598094., 1609056., 1535157., 1546146., 1557135., 1568124.,
      1582056., 1593072., 1604088., 1615104., 1540827., 1551870., 1562913.,
      1573956., 1587942., 1599012., 1610082., 1621152., 993654.,  1000980.,
      1008306., 1015632., 1024848., 1032192., 1039536., 1046880., 997290.,
      1004652., 1012014., 1019376., 1028628., 1036008., 1043388., 1050768.,
      1091502., 1099188., 1106874., 1114560., 1124280., 1131984., 1139688.,
      1147392., 1095426., 1103148., 1110870., 1118592., 1128348., 1136088.,
      1143828., 1151568., 1591857., 1603386., 1614915., 1626444., 1640916.,
      1652472., 1664028., 1675584., 1597527., 1609110., 1620693., 1632276.,
      1646802., 1658412., 1670022., 1681632., 1603197., 1614834., 1626471.,
      1638108., 1652688., 1664352., 1676016., 1687680., 1033650., 1041372.,
      1049094., 1056816., 1066428., 1074168., 1081908., 1089648., 1037286.,
      1045044., 1052802., 1060560., 1070208., 1077984., 1085760., 1093536.,
      630012.,  634872.,  639732.,  644592.,  650664.,  655536.,  660408.,
      665280.,  632340.,  637224.,  642108.,  646992.,  653088.,  657984.,
      662880.,  667776.,  916338.,  923628.,  930918.,  938208.,  947244.,
      954552.,  961860.,  969168.,  919686.,  927012.,  934338.,  941664.,
      950736.,  958080.,  965424.,  972768.,  923034.,  930396.,  937758.,
      945120.,  954228.,  961608.,  968988.,  976368.,  593268.,  598152.,
      603036.,  607920.,  613920.,  618816.,  623712.,  628608.,  595404.,
      600312.,  605220.,  610128.,  616152.,  621072.,  625992.,  630912.,
      655620.,  660744.,  665868.,  670992.,  677328.,  682464.,  687600.,
      692736.,  657948.,  663096.,  668244.,  673392.,  679752.,  684912.,
      690072.,  695232.,  953166.,  960852.,  968538.,  976224.,  985656.,
      993360.,  1001064., 1008768., 956514.,  964236.,  971958.,  979680.,
      989148.,  996888.,  1004628., 1012368., 959862.,  967620.,  975378.,
      983136.,  992640.,  1000416., 1008192., 1015968., 616764.,  621912.,
      627060.,  632208.,  638472.,  643632.,  648792.,  653952.,  618900.,
      624072.,  629244.,  634416.,  640704.,  645888.,  651072.,  656256.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      241020., 244776., 248532., 252288., 256632., 260400., 264168., 267936.,
      242100., 245880., 249660., 253440., 257808., 261600., 265392., 269184.,
      243180., 246984., 250788., 254592., 258984., 262800., 266616., 270432.,
      244260., 248088., 251916., 255744., 260160., 264000., 267840., 271680.,
      245340., 249192., 253044., 256896., 261336., 265200., 269064., 272928.,
      246420., 250296., 254172., 258048., 262512., 266400., 270288., 274176.,
      247500., 251400., 255300., 259200., 263688., 267600., 271512., 275424.,
      252900., 256920., 260940., 264960., 269568., 273600., 277632., 281664.,
      253980., 258024., 262068., 266112., 270744., 274800., 278856., 282912.,
      255060., 259128., 263196., 267264., 271920., 276000., 280080., 284160.,
      256140., 260232., 264324., 268416., 273096., 277200., 281304., 285408.,
      257220., 261336., 265452., 269568., 274272., 278400., 282528., 286656.,
      258300., 262440., 266580., 270720., 275448., 279600., 283752., 287904.,
      259380., 263544., 267708., 271872., 276624., 280800., 284976., 289152.,
      264780., 269064., 273348., 277632., 282504., 286800., 291096., 295392.,
      265860., 270168., 274476., 278784., 283680., 288000., 292320., 296640.,
      266940., 271272., 275604., 279936., 284856., 289200., 293544., 297888.,
      268020., 272376., 276732., 281088., 286032., 290400., 294768., 299136.,
      269100., 273480., 277860., 282240., 287208., 291600., 295992., 300384.,
      270180., 274584., 278988., 283392., 288384., 292800., 297216., 301632.,
      271260., 275688., 280116., 284544., 289560., 294000., 298440., 302880.,
      276660., 281208., 285756., 290304., 295440., 300000., 304560., 309120.,
      277740., 282312., 286884., 291456., 296616., 301200., 305784., 310368.,
      278820., 283416., 288012., 292608., 297792., 302400., 307008., 311616.,
      279900., 284520., 289140., 293760., 298968., 303600., 308232., 312864.,
      280980., 285624., 290268., 294912., 300144., 304800., 309456., 314112.,
      282060., 286728., 291396., 296064., 301320., 306000., 310680., 315360.,
      283140., 287832., 292524., 297216., 302496., 307200., 311904., 316608.,
      288540., 293352., 298164., 302976., 308376., 313200., 318024., 322848.,
      289620., 294456., 299292., 304128., 309552., 314400., 319248., 324096.,
      290700., 295560., 300420., 305280., 310728., 315600., 320472., 325344.,
      291780., 296664., 301548., 306432., 311904., 316800., 321696., 326592.,
      292860., 297768., 302676., 307584., 313080., 318000., 322920., 327840.,
      293940., 298872., 303804., 308736., 314256., 319200., 324144., 329088.,
      295020., 299976., 304932., 309888., 315432., 320400., 325368., 330336.,
      300420., 305496., 310572., 315648., 321312., 326400., 331488., 336576.,
      301500., 306600., 311700., 316800., 322488., 327600., 332712., 337824.,
      302580., 307704., 312828., 317952., 323664., 328800., 333936., 339072.,
      303660., 308808., 313956., 319104., 324840., 330000., 335160., 340320.,
      304740., 309912., 315084., 320256., 326016., 331200., 336384., 341568.,
      305820., 311016., 316212., 321408., 327192., 332400., 337608., 342816.,
      306900., 312120., 317340., 322560., 328368., 333600., 338832., 344064.,
      312300., 317640., 322980., 328320., 334248., 339600., 344952., 350304.,
      313380., 318744., 324108., 329472., 335424., 340800., 346176., 351552.,
      314460., 319848., 325236., 330624., 336600., 342000., 347400., 352800.,
      315540., 320952., 326364., 331776., 337776., 343200., 348624., 354048.,
      316620., 322056., 327492., 332928., 338952., 344400., 349848., 355296.,
      317700., 323160., 328620., 334080., 340128., 345600., 351072., 356544.,
      318780., 324264., 329748., 335232., 341304., 346800., 352296., 357792.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      718572.,  728496.,  738444.,  748416.,  721500.,  731472.,  741468.,
      751488.,  1050798., 1065648., 1080534., 1095456., 1055046., 1069968.,
      1084926., 1099920., 1059294., 1074288., 1089318., 1104384., 684588.,
      694512.,  704460.,  714432.,  687324.,  697296.,  707292.,  717312.,
      967518.,  981504.,  995526.,  1009584., 971478.,  985536.,  999630.,
      1013760., 1413063., 1433988., 1454967., 1476000., 1418787., 1439820.,
      1460907., 1482048., 1424511., 1445652., 1466847., 1488096., 919278.,
      933264.,  947286.,  961344.,  922950.,  937008.,  951102.,  965232.,
      1011078., 1025856., 1040670., 1055520., 1015038., 1029888., 1044774.,
      1059696., 1476027., 1498140., 1520307., 1542528., 1481751., 1503972.,
      1526247., 1548576., 1487475., 1509804., 1532187., 1554624., 959670.,
      974448.,  989262.,  1004112., 963342.,  978192.,  993078.,  1008000.,
      1054638., 1070208., 1085814., 1101456., 1058598., 1074240., 1089918.,
      1105632., 1538991., 1562292., 1585647., 1609056., 1544715., 1568124.,
      1591587., 1615104., 1550439., 1573956., 1597527., 1621152., 1000062.,
      1015632., 1031238., 1046880., 1003734., 1019376., 1035054., 1050768.,
      1098198., 1114560., 1130958., 1147392., 1102158., 1118592., 1135062.,
      1151568., 1601955., 1626444., 1650987., 1675584., 1607679., 1632276.,
      1656927., 1681632., 1613403., 1638108., 1662867., 1687680., 1040454.,
      1056816., 1073214., 1089648., 1044126., 1060560., 1077030., 1093536.,
      634284.,  644592.,  654924.,  665280.,  636636.,  646992.,  657372.,
      667776.,  922782.,  938208.,  953670.,  969168.,  926166.,  941664.,
      957198.,  972768.,  929550.,  945120.,  960726.,  976368.,  597612.,
      607920.,  618252.,  628608.,  599772.,  610128.,  620508.,  630912.,
      660156.,  670992.,  681852.,  692736.,  662508.,  673392.,  684300.,
      695232.,  960006.,  976224.,  992478.,  1008768., 963390.,  979680.,
      996006.,  1012368., 966774.,  983136.,  999534.,  1015968., 621372.,
      632208.,  643068.,  653952.,  623532.,  634416.,  645324.,  656256.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      244500., 252288., 260100., 267936., 245604., 253440., 261300., 269184.,
      246708., 254592., 262500., 270432., 247812., 255744., 263700., 271680.,
      248916., 256896., 264900., 272928., 250020., 258048., 266100., 274176.,
      251124., 259200., 267300., 275424., 256644., 264960., 273300., 281664.,
      257748., 266112., 274500., 282912., 258852., 267264., 275700., 284160.,
      259956., 268416., 276900., 285408., 261060., 269568., 278100., 286656.,
      262164., 270720., 279300., 287904., 263268., 271872., 280500., 289152.,
      268788., 277632., 286500., 295392., 269892., 278784., 287700., 296640.,
      270996., 279936., 288900., 297888., 272100., 281088., 290100., 299136.,
      273204., 282240., 291300., 300384., 274308., 283392., 292500., 301632.,
      275412., 284544., 293700., 302880., 280932., 290304., 299700., 309120.,
      282036., 291456., 300900., 310368., 283140., 292608., 302100., 311616.,
      284244., 293760., 303300., 312864., 285348., 294912., 304500., 314112.,
      286452., 296064., 305700., 315360., 287556., 297216., 306900., 316608.,
      293076., 302976., 312900., 322848., 294180., 304128., 314100., 324096.,
      295284., 305280., 315300., 325344., 296388., 306432., 316500., 326592.,
      297492., 307584., 317700., 327840., 298596., 308736., 318900., 329088.,
      299700., 309888., 320100., 330336., 305220., 315648., 326100., 336576.,
      306324., 316800., 327300., 337824., 307428., 317952., 328500., 339072.,
      308532., 319104., 329700., 340320., 309636., 320256., 330900., 341568.,
      310740., 321408., 332100., 342816., 311844., 322560., 333300., 344064.,
      317364., 328320., 339300., 350304., 318468., 329472., 340500., 351552.,
      319572., 330624., 341700., 352800., 320676., 331776., 342900., 354048.,
      321780., 332928., 344100., 355296., 322884., 334080., 345300., 356544.,
      323988., 335232., 346500., 357792.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1427964., 1437144., 1447800., 1456992., 1467684., 1476888., 1487616.,
      1496832., 1433772., 1443000., 1453704., 1462944., 1473684., 1482936.,
      1493712., 1502976., 2087826., 2101596., 2117508., 2131296., 2147262.,
      2161068., 2177088., 2190912., 2096250., 2110092., 2126076., 2139936.,
      2155974., 2169852., 2185944., 2199840., 2104674., 2118588., 2134644.,
      2148576., 2164686., 2178636., 2194800., 2208768., 1359948., 1369176.,
      1379784., 1389024., 1399668., 1408920., 1419600., 1428864., 1365372.,
      1374648., 1385304., 1394592., 1405284., 1414584., 1425312., 1434624.,
      1922058., 1935036., 1950012., 1963008., 1978038., 1991052., 2006136.,
      2019168., 1929906., 1942956., 1958004., 1971072., 1986174., 1999260.,
      2014416., 2027520., 2806659., 2826126., 2848482., 2867976., 2890413.,
      2909934., 2932452., 2952000., 2817999., 2837574., 2860038., 2879640.,
      2902185., 2921814., 2944440., 2964096., 2829339., 2849022., 2871594.,
      2891304., 2913957., 2933694., 2956428., 2976192., 1825506., 1838556.,
      1853460., 1866528., 1881486., 1894572., 1909584., 1922688., 1832778.,
      1845900., 1860876., 1874016., 1889046., 1902204., 1917288., 1930464.,
      2008386., 2022156., 2037924., 2051712., 2067534., 2081340., 2097216.,
      2111040., 2016234., 2030076., 2045916., 2059776., 2075670., 2089548.,
      2105496., 2119392., 2931399., 2952054., 2975598., 2996280., 3019905.,
      3040614., 3064320., 3085056., 2942739., 2963502., 2987154., 3007944.,
      3031677., 3052494., 3076308., 3097152., 2954079., 2974950., 2998710.,
      3019608., 3043449., 3064374., 3088296., 3109248., 1905498., 1919340.,
      1935036., 1948896., 1964646., 1978524., 1994328., 2008224., 1912770.,
      1926684., 1942452., 1956384., 1972206., 1986156., 2002032., 2016000.,
      2094714., 2109276., 2125836., 2140416., 2157030., 2171628., 2188296.,
      2202912., 2102562., 2117196., 2133828., 2148480., 2165166., 2179836.,
      2196576., 2211264., 3056139., 3077982., 3102714., 3124584., 3149397.,
      3171294., 3196188., 3218112., 3067479., 3089430., 3114270., 3136248.,
      3161169., 3183174., 3208176., 3230208., 3078819., 3100878., 3125826.,
      3147912., 3172941., 3195054., 3220164., 3242304., 1985490., 2000124.,
      2016612., 2031264., 2047806., 2062476., 2079072., 2093760., 1992762.,
      2007468., 2024028., 2038752., 2055366., 2070108., 2086776., 2101536.,
      2181042., 2196396., 2213748., 2229120., 2246526., 2261916., 2279376.,
      2294784., 2188890., 2204316., 2221740., 2237184., 2254662., 2270124.,
      2287656., 2303136., 3180879., 3203910., 3229830., 3252888., 3278889.,
      3301974., 3328056., 3351168., 3192219., 3215358., 3241386., 3264552.,
      3290661., 3313854., 3340044., 3363264., 3203559., 3226806., 3252942.,
      3276216., 3302433., 3325734., 3352032., 3375360., 2065482., 2080908.,
      2098188., 2113632., 2130966., 2146428., 2163816., 2179296., 2072754.,
      2088252., 2105604., 2121120., 2138526., 2154060., 2171520., 2187072.,
      1258860., 1268568., 1279464., 1289184., 1300116., 1309848., 1320816.,
      1330560., 1263516., 1273272., 1284216., 1293984., 1304964., 1314744.,
      1325760., 1335552., 1831002., 1845564., 1861836., 1876416., 1892742.,
      1907340., 1923720., 1938336., 1837698., 1852332., 1868676., 1883328.,
      1899726., 1914396., 1930848., 1945536., 1844394., 1859100., 1875516.,
      1890240., 1906710., 1921452., 1937976., 1952736., 1185468., 1195224.,
      1206072., 1215840., 1226724., 1236504., 1247424., 1257216., 1189740.,
      1199544., 1210440., 1220256., 1231188., 1241016., 1251984., 1261824.,
      1310076., 1320312., 1331736., 1341984., 1353444., 1363704., 1375200.,
      1385472., 1314732., 1325016., 1336488., 1346784., 1358292., 1368600.,
      1380144., 1390464., 1904658., 1920012., 1937076., 1952448., 1969566.,
      1984956., 2002128., 2017536., 1911354., 1926780., 1943916., 1959360.,
      1976550., 1992012., 2009256., 2024736., 1918050., 1933548., 1950756.,
      1966272., 1983534., 1999068., 2016384., 2031936., 1232460., 1242744.,
      1254120., 1264416., 1275828., 1286136., 1297584., 1307904., 1236732.,
      1247064., 1258488., 1268832., 1280292., 1290648., 1302144., 1312512.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      481500., 489000., 497064., 504576., 512676., 520200., 528336., 535872.,
      483660., 491208., 499320., 506880., 515028., 522600., 530784., 538368.,
      485820., 493416., 501576., 509184., 517380., 525000., 533232., 540864.,
      487980., 495624., 503832., 511488., 519732., 527400., 535680., 543360.,
      490140., 497832., 506088., 513792., 522084., 529800., 538128., 545856.,
      492300., 500040., 508344., 516096., 524436., 532200., 540576., 548352.,
      494460., 502248., 510600., 518400., 526788., 534600., 543024., 550848.,
      505260., 513288., 521880., 529920., 538548., 546600., 555264., 563328.,
      507420., 515496., 524136., 532224., 540900., 549000., 557712., 565824.,
      509580., 517704., 526392., 534528., 543252., 551400., 560160., 568320.,
      511740., 519912., 528648., 536832., 545604., 553800., 562608., 570816.,
      513900., 522120., 530904., 539136., 547956., 556200., 565056., 573312.,
      516060., 524328., 533160., 541440., 550308., 558600., 567504., 575808.,
      518220., 526536., 535416., 543744., 552660., 561000., 569952., 578304.,
      529020., 537576., 546696., 555264., 564420., 573000., 582192., 590784.,
      531180., 539784., 548952., 557568., 566772., 575400., 584640., 593280.,
      533340., 541992., 551208., 559872., 569124., 577800., 587088., 595776.,
      535500., 544200., 553464., 562176., 571476., 580200., 589536., 598272.,
      537660., 546408., 555720., 564480., 573828., 582600., 591984., 600768.,
      539820., 548616., 557976., 566784., 576180., 585000., 594432., 603264.,
      541980., 550824., 560232., 569088., 578532., 587400., 596880., 605760.,
      552780., 561864., 571512., 580608., 590292., 599400., 609120., 618240.,
      554940., 564072., 573768., 582912., 592644., 601800., 611568., 620736.,
      557100., 566280., 576024., 585216., 594996., 604200., 614016., 623232.,
      559260., 568488., 578280., 587520., 597348., 606600., 616464., 625728.,
      561420., 570696., 580536., 589824., 599700., 609000., 618912., 628224.,
      563580., 572904., 582792., 592128., 602052., 611400., 621360., 630720.,
      565740., 575112., 585048., 594432., 604404., 613800., 623808., 633216.,
      576540., 586152., 596328., 605952., 616164., 625800., 636048., 645696.,
      578700., 588360., 598584., 608256., 618516., 628200., 638496., 648192.,
      580860., 590568., 600840., 610560., 620868., 630600., 640944., 650688.,
      583020., 592776., 603096., 612864., 623220., 633000., 643392., 653184.,
      585180., 594984., 605352., 615168., 625572., 635400., 645840., 655680.,
      587340., 597192., 607608., 617472., 627924., 637800., 648288., 658176.,
      589500., 599400., 609864., 619776., 630276., 640200., 650736., 660672.,
      600300., 610440., 621144., 631296., 642036., 652200., 662976., 673152.,
      602460., 612648., 623400., 633600., 644388., 654600., 665424., 675648.,
      604620., 614856., 625656., 635904., 646740., 657000., 667872., 678144.,
      606780., 617064., 627912., 638208., 649092., 659400., 670320., 680640.,
      608940., 619272., 630168., 640512., 651444., 661800., 672768., 683136.,
      611100., 621480., 632424., 642816., 653796., 664200., 675216., 685632.,
      613260., 623688., 634680., 645120., 656148., 666600., 677664., 688128.,
      624060., 634728., 645960., 656640., 667908., 678600., 689904., 700608.,
      626220., 636936., 648216., 658944., 670260., 681000., 692352., 703104.,
      628380., 639144., 650472., 661248., 672612., 683400., 694800., 705600.,
      630540., 641352., 652728., 663552., 674964., 685800., 697248., 708096.,
      632700., 643560., 654984., 665856., 677316., 688200., 699696., 710592.,
      634860., 645768., 657240., 668160., 679668., 690600., 702144., 713088.,
      637020., 647976., 659496., 670464., 682020., 693000., 704592., 715584.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2846748., 2855928., 2865108., 2874288., 2886408., 2895600., 2904792.,
      2913984., 2926164., 2935368., 2944572., 2953776., 2966016., 2975232.,
      2984448., 2993664., 2858316., 2867544., 2876772., 2886000., 2898168.,
      2907408., 2916648., 2925888., 2938116., 2947368., 2956620., 2965872.,
      2978160., 2987424., 2996688., 3005952., 4161882., 4175652., 4189422.,
      4203192., 4221228., 4235016., 4248804., 4262592., 4280718., 4294524.,
      4308330., 4322136., 4340352., 4354176., 4368000., 4381824., 4178658.,
      4192500., 4206342., 4220184., 4238292., 4252152., 4266012., 4279872.,
      4298070., 4311948., 4325826., 4339704., 4357992., 4371888., 4385784.,
      4399680., 4195434., 4209348., 4223262., 4237176., 4255356., 4269288.,
      4283220., 4297152., 4315422., 4329372., 4343322., 4357272., 4375632.,
      4389600., 4403568., 4417536., 2710668., 2719896., 2729124., 2738352.,
      2750328., 2759568., 2768808., 2778048., 2790084., 2799336., 2808588.,
      2817840., 2829936., 2839200., 2848464., 2857728., 2721468., 2730744.,
      2740020., 2749296., 2761320., 2770608., 2779896., 2789184., 2801268.,
      2810568., 2819868., 2829168., 2841312., 2850624., 2859936., 2869248.,
      3831138., 3844116., 3857094., 3870072., 3887028., 3900024., 3913020.,
      3926016., 3943062., 3956076., 3969090., 3982104., 3999240., 4012272.,
      4025304., 4038336., 3846762., 3859812., 3872862., 3885912., 3902940.,
      3916008., 3929076., 3942144., 3959262., 3972348., 3985434., 3998520.,
      4015728., 4028832., 4041936., 4055040., 5593851., 5613318., 5632785.,
      5652252., 5677470., 5696964., 5716458., 5735952., 5761305., 5780826.,
      5800347., 5819868., 5845356., 5864904., 5884452., 5904000., 5616423.,
      5635998., 5655573., 5675148., 5700474., 5720076., 5739678., 5759280.,
      5784741., 5804370., 5823999., 5843628., 5869224., 5888880., 5908536.,
      5928192., 5638995., 5658678., 5678361., 5698044., 5723478., 5743188.,
      5762898., 5782608., 5808177., 5827914., 5847651., 5867388., 5893092.,
      5912856., 5932620., 5952384., 3637962., 3651012., 3664062., 3677112.,
      3693852., 3706920., 3719988., 3733056., 3749886., 3762972., 3776058.,
      3789144., 3806064., 3819168., 3832272., 3845376., 3652434., 3665556.,
      3678678., 3691800., 3708612., 3721752., 3734892., 3748032., 3764934.,
      3778092., 3791250., 3804408., 3821400., 3834576., 3847752., 3860928.,
      4003002., 4016772., 4030542., 4044312., 4062060., 4075848., 4089636.,
      4103424., 4121262., 4135068., 4148874., 4162680., 4180608., 4194432.,
      4208256., 4222080., 4018626., 4032468., 4046310., 4060152., 4077972.,
      4091832., 4105692., 4119552., 4137462., 4151340., 4165218., 4179096.,
      4197096., 4210992., 4224888., 4238784., 5842143., 5862798., 5883453.,
      5904108., 5930514., 5951196., 5971878., 5992560., 6019101., 6039810.,
      6060519., 6081228., 6107904., 6128640., 6149376., 6170112., 5864715.,
      5885478., 5906241., 5927004., 5953518., 5974308., 5995098., 6015888.,
      6042537., 6063354., 6084171., 6104988., 6131772., 6152616., 6173460.,
      6194304., 5887287., 5908158., 5929029., 5949900., 5976522., 5997420.,
      6018318., 6039216., 6065973., 6086898., 6107823., 6128748., 6155640.,
      6176592., 6197544., 6218496., 3797154., 3810996., 3824838., 3838680.,
      3856212., 3870072., 3883932., 3897792., 3915414., 3929292., 3943170.,
      3957048., 3974760., 3988656., 4002552., 4016448., 3811626., 3825540.,
      3839454., 3853368., 3870972., 3884904., 3898836., 3912768., 3930462.,
      3944412., 3958362., 3972312., 3990096., 4004064., 4018032., 4032000.,
      4174866., 4189428., 4203990., 4218552., 4237092., 4251672., 4266252.,
      4280832., 4299462., 4314060., 4328658., 4343256., 4361976., 4376592.,
      4391208., 4405824., 4190490., 4205124., 4219758., 4234392., 4253004.,
      4267656., 4282308., 4296960., 4315662., 4330332., 4345002., 4359672.,
      4378464., 4393152., 4407840., 4422528., 6090435., 6112278., 6134121.,
      6155964., 6183558., 6205428., 6227298., 6249168., 6276897., 6298794.,
      6320691., 6342588., 6370452., 6392376., 6414300., 6436224., 6113007.,
      6134958., 6156909., 6178860., 6206562., 6228540., 6250518., 6272496.,
      6300333., 6322338., 6344343., 6366348., 6394320., 6416352., 6438384.,
      6460416., 6135579., 6157638., 6179697., 6201756., 6229566., 6251652.,
      6273738., 6295824., 6323769., 6345882., 6367995., 6390108., 6418188.,
      6440328., 6462468., 6484608., 3956346., 3970980., 3985614., 4000248.,
      4018572., 4033224., 4047876., 4062528., 4080942., 4095612., 4110282.,
      4124952., 4143456., 4158144., 4172832., 4187520., 3970818., 3985524.,
      4000230., 4014936., 4033332., 4048056., 4062780., 4077504., 4095990.,
      4110732., 4125474., 4140216., 4158792., 4173552., 4188312., 4203072.,
      4346730., 4362084., 4377438., 4392792., 4412124., 4427496., 4442868.,
      4458240., 4477662., 4493052., 4508442., 4523832., 4543344., 4558752.,
      4574160., 4589568., 4362354., 4377780., 4393206., 4408632., 4428036.,
      4443480., 4458924., 4474368., 4493862., 4509324., 4524786., 4540248.,
      4559832., 4575312., 4590792., 4606272., 6338727., 6361758., 6384789.,
      6407820., 6436602., 6459660., 6482718., 6505776., 6534693., 6557778.,
      6580863., 6603948., 6633000., 6656112., 6679224., 6702336., 6361299.,
      6384438., 6407577., 6430716., 6459606., 6482772., 6505938., 6529104.,
      6558129., 6581322., 6604515., 6627708., 6656868., 6680088., 6703308.,
      6726528., 6383871., 6407118., 6430365., 6453612., 6482610., 6505884.,
      6529158., 6552432., 6581565., 6604866., 6628167., 6651468., 6680736.,
      6704064., 6727392., 6750720., 4115538., 4130964., 4146390., 4161816.,
      4180932., 4196376., 4211820., 4227264., 4246470., 4261932., 4277394.,
      4292856., 4312152., 4327632., 4343112., 4358592., 4130010., 4145508.,
      4161006., 4176504., 4195692., 4211208., 4226724., 4242240., 4261518.,
      4277052., 4292586., 4308120., 4327488., 4343040., 4358592., 4374144.,
      2508012., 2517720., 2527428., 2537136., 2549208., 2558928., 2568648.,
      2578368., 2590500., 2600232., 2609964., 2619696., 2631888., 2641632.,
      2651376., 2661120., 2517276., 2527032., 2536788., 2546544., 2558664.,
      2568432., 2578200., 2587968., 2600148., 2609928., 2619708., 2629488.,
      2641728., 2651520., 2661312., 2671104., 3647442., 3662004., 3676566.,
      3691128., 3709092., 3723672., 3738252., 3752832., 3770886., 3785484.,
      3800082., 3814680., 3832824., 3847440., 3862056., 3876672., 3660762.,
      3675396., 3690030., 3704664., 3722700., 3737352., 3752004., 3766656.,
      3784782., 3799452., 3814122., 3828792., 3847008., 3861696., 3876384.,
      3891072., 3674082., 3688788., 3703494., 3718200., 3736308., 3751032.,
      3765756., 3780480., 3798678., 3813420., 3828162., 3842904., 3861192.,
      3875952., 3890712., 3905472., 2361180., 2370936., 2380692., 2390448.,
      2402376., 2412144., 2421912., 2431680., 2443668., 2453448., 2463228.,
      2473008., 2485056., 2494848., 2504640., 2514432., 2369676., 2379480.,
      2389284., 2399088., 2411064., 2420880., 2430696., 2440512., 2452548.,
      2462376., 2472204., 2482032., 2494128., 2503968., 2513808., 2523648.,
      2609916., 2620152., 2630388., 2640624., 2653224., 2663472., 2673720.,
      2683968., 2696628., 2706888., 2717148., 2727408., 2740128., 2750400.,
      2760672., 2770944., 2619180., 2629464., 2639748., 2650032., 2662680.,
      2672976., 2683272., 2693568., 2706276., 2716584., 2726892., 2737200.,
      2749968., 2760288., 2770608., 2780928., 3793962., 3809316., 3824670.,
      3840024., 3858780., 3874152., 3889524., 3904896., 3923742., 3939132.,
      3954522., 3969912., 3988848., 4004256., 4019664., 4035072., 3807282.,
      3822708., 3838134., 3853560., 3872388., 3887832., 3903276., 3918720.,
      3937638., 3953100., 3968562., 3984024., 4003032., 4018512., 4033992.,
      4049472., 3820602., 3836100., 3851598., 3867096., 3885996., 3901512.,
      3917028., 3932544., 3951534., 3967068., 3982602., 3998136., 4017216.,
      4032768., 4048320., 4063872., 2454636., 2464920., 2475204., 2485488.,
      2497944., 2508240., 2518536., 2528832., 2541348., 2551656., 2561964.,
      2572272., 2584848., 2595168., 2605488., 2615808., 2463132., 2473464.,
      2483796., 2494128., 2506632., 2516976., 2527320., 2537664., 2550228.,
      2560584., 2570940., 2581296., 2593920., 2604288., 2614656., 2625024.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      955500.,  963000.,  970500.,  978000.,  986616.,  994128.,  1001640.,
      1009152., 1017828., 1025352., 1032876., 1040400., 1049136., 1056672.,
      1064208., 1071744., 959772.,  967320.,  974868.,  982416.,  991080.,
      998640.,  1006200., 1013760., 1022484., 1030056., 1037628., 1045200.,
      1053984., 1061568., 1069152., 1076736., 964044.,  971640.,  979236.,
      986832.,  995544.,  1003152., 1010760., 1018368., 1027140., 1034760.,
      1042380., 1050000., 1058832., 1066464., 1074096., 1081728., 968316.,
      975960.,  983604.,  991248.,  1000008., 1007664., 1015320., 1022976.,
      1031796., 1039464., 1047132., 1054800., 1063680., 1071360., 1079040.,
      1086720., 972588.,  980280.,  987972.,  995664.,  1004472., 1012176.,
      1019880., 1027584., 1036452., 1044168., 1051884., 1059600., 1068528.,
      1076256., 1083984., 1091712., 976860.,  984600.,  992340.,  1000080.,
      1008936., 1016688., 1024440., 1032192., 1041108., 1048872., 1056636.,
      1064400., 1073376., 1081152., 1088928., 1096704., 981132.,  988920.,
      996708.,  1004496., 1013400., 1021200., 1029000., 1036800., 1045764.,
      1053576., 1061388., 1069200., 1078224., 1086048., 1093872., 1101696.,
      1002492., 1010520., 1018548., 1026576., 1035720., 1043760., 1051800.,
      1059840., 1069044., 1077096., 1085148., 1093200., 1102464., 1110528.,
      1118592., 1126656., 1006764., 1014840., 1022916., 1030992., 1040184.,
      1048272., 1056360., 1064448., 1073700., 1081800., 1089900., 1098000.,
      1107312., 1115424., 1123536., 1131648., 1011036., 1019160., 1027284.,
      1035408., 1044648., 1052784., 1060920., 1069056., 1078356., 1086504.,
      1094652., 1102800., 1112160., 1120320., 1128480., 1136640., 1015308.,
      1023480., 1031652., 1039824., 1049112., 1057296., 1065480., 1073664.,
      1083012., 1091208., 1099404., 1107600., 1117008., 1125216., 1133424.,
      1141632., 1019580., 1027800., 1036020., 1044240., 1053576., 1061808.,
      1070040., 1078272., 1087668., 1095912., 1104156., 1112400., 1121856.,
      1130112., 1138368., 1146624., 1023852., 1032120., 1040388., 1048656.,
      1058040., 1066320., 1074600., 1082880., 1092324., 1100616., 1108908.,
      1117200., 1126704., 1135008., 1143312., 1151616., 1028124., 1036440.,
      1044756., 1053072., 1062504., 1070832., 1079160., 1087488., 1096980.,
      1105320., 1113660., 1122000., 1131552., 1139904., 1148256., 1156608.,
      1049484., 1058040., 1066596., 1075152., 1084824., 1093392., 1101960.,
      1110528., 1120260., 1128840., 1137420., 1146000., 1155792., 1164384.,
      1172976., 1181568., 1053756., 1062360., 1070964., 1079568., 1089288.,
      1097904., 1106520., 1115136., 1124916., 1133544., 1142172., 1150800.,
      1160640., 1169280., 1177920., 1186560., 1058028., 1066680., 1075332.,
      1083984., 1093752., 1102416., 1111080., 1119744., 1129572., 1138248.,
      1146924., 1155600., 1165488., 1174176., 1182864., 1191552., 1062300.,
      1071000., 1079700., 1088400., 1098216., 1106928., 1115640., 1124352.,
      1134228., 1142952., 1151676., 1160400., 1170336., 1179072., 1187808.,
      1196544., 1066572., 1075320., 1084068., 1092816., 1102680., 1111440.,
      1120200., 1128960., 1138884., 1147656., 1156428., 1165200., 1175184.,
      1183968., 1192752., 1201536., 1070844., 1079640., 1088436., 1097232.,
      1107144., 1115952., 1124760., 1133568., 1143540., 1152360., 1161180.,
      1170000., 1180032., 1188864., 1197696., 1206528., 1075116., 1083960.,
      1092804., 1101648., 1111608., 1120464., 1129320., 1138176., 1148196.,
      1157064., 1165932., 1174800., 1184880., 1193760., 1202640., 1211520.,
      1096476., 1105560., 1114644., 1123728., 1133928., 1143024., 1152120.,
      1161216., 1171476., 1180584., 1189692., 1198800., 1209120., 1218240.,
      1227360., 1236480., 1100748., 1109880., 1119012., 1128144., 1138392.,
      1147536., 1156680., 1165824., 1176132., 1185288., 1194444., 1203600.,
      1213968., 1223136., 1232304., 1241472., 1105020., 1114200., 1123380.,
      1132560., 1142856., 1152048., 1161240., 1170432., 1180788., 1189992.,
      1199196., 1208400., 1218816., 1228032., 1237248., 1246464., 1109292.,
      1118520., 1127748., 1136976., 1147320., 1156560., 1165800., 1175040.,
      1185444., 1194696., 1203948., 1213200., 1223664., 1232928., 1242192.,
      1251456., 1113564., 1122840., 1132116., 1141392., 1151784., 1161072.,
      1170360., 1179648., 1190100., 1199400., 1208700., 1218000., 1228512.,
      1237824., 1247136., 1256448., 1117836., 1127160., 1136484., 1145808.,
      1156248., 1165584., 1174920., 1184256., 1194756., 1204104., 1213452.,
      1222800., 1233360., 1242720., 1252080., 1261440., 1122108., 1131480.,
      1140852., 1150224., 1160712., 1170096., 1179480., 1188864., 1199412.,
      1208808., 1218204., 1227600., 1238208., 1247616., 1257024., 1266432.,
      1143468., 1153080., 1162692., 1172304., 1183032., 1192656., 1202280.,
      1211904., 1222692., 1232328., 1241964., 1251600., 1262448., 1272096.,
      1281744., 1291392., 1147740., 1157400., 1167060., 1176720., 1187496.,
      1197168., 1206840., 1216512., 1227348., 1237032., 1246716., 1256400.,
      1267296., 1276992., 1286688., 1296384., 1152012., 1161720., 1171428.,
      1181136., 1191960., 1201680., 1211400., 1221120., 1232004., 1241736.,
      1251468., 1261200., 1272144., 1281888., 1291632., 1301376., 1156284.,
      1166040., 1175796., 1185552., 1196424., 1206192., 1215960., 1225728.,
      1236660., 1246440., 1256220., 1266000., 1276992., 1286784., 1296576.,
      1306368., 1160556., 1170360., 1180164., 1189968., 1200888., 1210704.,
      1220520., 1230336., 1241316., 1251144., 1260972., 1270800., 1281840.,
      1291680., 1301520., 1311360., 1164828., 1174680., 1184532., 1194384.,
      1205352., 1215216., 1225080., 1234944., 1245972., 1255848., 1265724.,
      1275600., 1286688., 1296576., 1306464., 1316352., 1169100., 1179000.,
      1188900., 1198800., 1209816., 1219728., 1229640., 1239552., 1250628.,
      1260552., 1270476., 1280400., 1291536., 1301472., 1311408., 1321344.,
      1190460., 1200600., 1210740., 1220880., 1232136., 1242288., 1252440.,
      1262592., 1273908., 1284072., 1294236., 1304400., 1315776., 1325952.,
      1336128., 1346304., 1194732., 1204920., 1215108., 1225296., 1236600.,
      1246800., 1257000., 1267200., 1278564., 1288776., 1298988., 1309200.,
      1320624., 1330848., 1341072., 1351296., 1199004., 1209240., 1219476.,
      1229712., 1241064., 1251312., 1261560., 1271808., 1283220., 1293480.,
      1303740., 1314000., 1325472., 1335744., 1346016., 1356288., 1203276.,
      1213560., 1223844., 1234128., 1245528., 1255824., 1266120., 1276416.,
      1287876., 1298184., 1308492., 1318800., 1330320., 1340640., 1350960.,
      1361280., 1207548., 1217880., 1228212., 1238544., 1249992., 1260336.,
      1270680., 1281024., 1292532., 1302888., 1313244., 1323600., 1335168.,
      1345536., 1355904., 1366272., 1211820., 1222200., 1232580., 1242960.,
      1254456., 1264848., 1275240., 1285632., 1297188., 1307592., 1317996.,
      1328400., 1340016., 1350432., 1360848., 1371264., 1216092., 1226520.,
      1236948., 1247376., 1258920., 1269360., 1279800., 1290240., 1301844.,
      1312296., 1322748., 1333200., 1344864., 1355328., 1365792., 1376256.,
      1237452., 1248120., 1258788., 1269456., 1281240., 1291920., 1302600.,
      1313280., 1325124., 1335816., 1346508., 1357200., 1369104., 1379808.,
      1390512., 1401216., 1241724., 1252440., 1263156., 1273872., 1285704.,
      1296432., 1307160., 1317888., 1329780., 1340520., 1351260., 1362000.,
      1373952., 1384704., 1395456., 1406208., 1245996., 1256760., 1267524.,
      1278288., 1290168., 1300944., 1311720., 1322496., 1334436., 1345224.,
      1356012., 1366800., 1378800., 1389600., 1400400., 1411200., 1250268.,
      1261080., 1271892., 1282704., 1294632., 1305456., 1316280., 1327104.,
      1339092., 1349928., 1360764., 1371600., 1383648., 1394496., 1405344.,
      1416192., 1254540., 1265400., 1276260., 1287120., 1299096., 1309968.,
      1320840., 1331712., 1343748., 1354632., 1365516., 1376400., 1388496.,
      1399392., 1410288., 1421184., 1258812., 1269720., 1280628., 1291536.,
      1303560., 1314480., 1325400., 1336320., 1348404., 1359336., 1370268.,
      1381200., 1393344., 1404288., 1415232., 1426176., 1263084., 1274040.,
      1284996., 1295952., 1308024., 1318992., 1329960., 1340928., 1353060.,
      1364040., 1375020., 1386000., 1398192., 1409184., 1420176., 1431168.};
  const std::array<int, 4> in_shape = {{3, 12, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      51132., 74559.,  74838.,  75117.,  75396.,  48792., 48972.,
      68976., 100458., 100836., 101214., 101592., 65655., 65898.,
      72108., 104994., 105372., 105750., 106128., 68571., 68814.,
      75240., 109530., 109908., 110286., 110664., 71487., 71730.,
      78372., 114066., 114444., 114822., 115200., 74403., 74646.,
      45444., 65973.,  66198.,  66423.,  66648.,  42924., 43068.,
      47316., 68673.,  68898.,  69123.,  69348.,  44652., 44796.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      18246., 18324., 18402., 18480., 18558., 18636., 18714., 19182., 19260.,
      19338., 19416., 19494., 19572., 19650., 20118., 20196., 20274., 20352.,
      20430., 20508., 20586., 21054., 21132., 21210., 21288., 21366., 21444.,
      21522., 21990., 22068., 22146., 22224., 22302., 22380., 22458., 22926.,
      23004., 23082., 23160., 23238., 23316., 23394., 23862., 23940., 24018.,
      24096., 24174., 24252., 24330.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      99744.,  102264., 145356., 149118., 145896., 149676., 146436., 150234.,
      146976., 150792., 95052.,  97584.,  95400.,  97944.,  134388., 137952.,
      195597., 200916., 196326., 201672., 197055., 202428., 197784., 203184.,
      127728., 131310., 128196., 131796., 140436., 144216., 204345., 209988.,
      205074., 210744., 205803., 211500., 206532., 212256., 133344., 137142.,
      133812., 137628., 146484., 150480., 213093., 219060., 213822., 219816.,
      214551., 220572., 215280., 221328., 138960., 142974., 139428., 143460.,
      152532., 156744., 221841., 228132., 222570., 228888., 223299., 229644.,
      224028., 230400., 144576., 148806., 145044., 149292., 88224.,  90888.,
      127968., 131946., 128400., 132396., 128832., 132846., 129264., 133296.,
      83172.,  85848.,  83448.,  86136.,  91824.,  94632.,  133152., 137346.,
      133584., 137796., 134016., 138246., 134448., 138696., 86484.,  89304.,
      86760.,  89592.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      34440., 36492., 34584., 36648., 34728., 36804., 34872., 36960., 35016.,
      37116., 35160., 37272., 35304., 37428., 36168., 38364., 36312., 38520.,
      36456., 38676., 36600., 38832., 36744., 38988., 36888., 39144., 37032.,
      39300., 37896., 40236., 38040., 40392., 38184., 40548., 38328., 40704.,
      38472., 40860., 38616., 41016., 38760., 41172., 39624., 42108., 39768.,
      42264., 39912., 42420., 40056., 42576., 40200., 42732., 40344., 42888.,
      40488., 43044., 41352., 43980., 41496., 44136., 41640., 44292., 41784.,
      44448., 41928., 44604., 42072., 44760., 42216., 44916., 43080., 45852.,
      43224., 46008., 43368., 46164., 43512., 46320., 43656., 46476., 43800.,
      46632., 43944., 46788., 44808., 47724., 44952., 47880., 45096., 48036.,
      45240., 48192., 45384., 48348., 45528., 48504., 45672., 48660.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      196968., 199488., 202008., 204528., 286950., 290712., 294474., 298236.,
      288012., 291792., 295572., 299352., 289074., 292872., 296670., 300468.,
      290136., 293952., 297768., 301584., 187572., 190104., 192636., 195168.,
      188256., 190800., 193344., 195888., 265212., 268776., 272340., 275904.,
      385875., 391194., 396513., 401832., 387306., 392652., 397998., 403344.,
      388737., 394110., 399483., 404856., 390168., 395568., 400968., 406368.,
      251874., 255456., 259038., 262620., 252792., 256392., 259992., 263592.,
      277092., 280872., 284652., 288432., 403047., 408690., 414333., 419976.,
      404478., 410148., 415818., 421488., 405909., 411606., 417303., 423000.,
      407340., 413064., 418788., 424512., 262890., 266688., 270486., 274284.,
      263808., 267624., 271440., 275256., 288972., 292968., 296964., 300960.,
      420219., 426186., 432153., 438120., 421650., 427644., 433638., 439632.,
      423081., 429102., 435123., 441144., 424512., 430560., 436608., 442656.,
      273906., 277920., 281934., 285948., 274824., 278856., 282888., 286920.,
      300852., 305064., 309276., 313488., 437391., 443682., 449973., 456264.,
      438822., 445140., 451458., 457776., 440253., 446598., 452943., 459288.,
      441684., 448056., 454428., 460800., 284922., 289152., 293382., 297612.,
      285840., 290088., 294336., 298584., 173784., 176448., 179112., 181776.,
      251958., 255936., 259914., 263892., 252804., 256800., 260796., 264792.,
      253650., 257664., 261678., 265692., 254496., 258528., 262560., 266592.,
      163668., 166344., 169020., 171696., 164208., 166896., 169584., 172272.,
      180840., 183648., 186456., 189264., 262110., 266304., 270498., 274692.,
      262956., 267168., 271380., 275592., 263802., 268032., 272262., 276492.,
      264648., 268896., 273144., 277392., 170148., 172968., 175788., 178608.,
      170688., 173520., 176352., 179184.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      66828., 68880., 70932., 72984., 67104., 69168., 71232., 73296., 67380.,
      69456., 71532., 73608., 67656., 69744., 71832., 73920., 67932., 70032.,
      72132., 74232., 68208., 70320., 72432., 74544., 68484., 70608., 72732.,
      74856., 70140., 72336., 74532., 76728., 70416., 72624., 74832., 77040.,
      70692., 72912., 75132., 77352., 70968., 73200., 75432., 77664., 71244.,
      73488., 75732., 77976., 71520., 73776., 76032., 78288., 71796., 74064.,
      76332., 78600., 73452., 75792., 78132., 80472., 73728., 76080., 78432.,
      80784., 74004., 76368., 78732., 81096., 74280., 76656., 79032., 81408.,
      74556., 76944., 79332., 81720., 74832., 77232., 79632., 82032., 75108.,
      77520., 79932., 82344., 76764., 79248., 81732., 84216., 77040., 79536.,
      82032., 84528., 77316., 79824., 82332., 84840., 77592., 80112., 82632.,
      85152., 77868., 80400., 82932., 85464., 78144., 80688., 83232., 85776.,
      78420., 80976., 83532., 86088., 80076., 82704., 85332., 87960., 80352.,
      82992., 85632., 88272., 80628., 83280., 85932., 88584., 80904., 83568.,
      86232., 88896., 81180., 83856., 86532., 89208., 81456., 84144., 86832.,
      89520., 81732., 84432., 87132., 89832., 83388., 86160., 88932., 91704.,
      83664., 86448., 89232., 92016., 83940., 86736., 89532., 92328., 84216.,
      87024., 89832., 92640., 84492., 87312., 90132., 92952., 84768., 87600.,
      90432., 93264., 85044., 87888., 90732., 93576., 86700., 89616., 92532.,
      95448., 86976., 89904., 92832., 95760., 87252., 90192., 93132., 96072.,
      87528., 90480., 93432., 96384., 87804., 90768., 93732., 96696., 88080.,
      91056., 94032., 97008., 88356., 91344., 94332., 97320.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      199116., 204528., 290172., 298236., 291252., 299352., 292332., 300468.,
      293412., 301584., 189756., 195168., 190452., 195888., 268272., 275904.,
      390465., 401832., 391923., 403344., 393381., 404856., 394839., 406368.,
      254988., 262620., 255924., 263592., 280368., 288432., 407961., 419976.,
      409419., 421488., 410877., 423000., 412335., 424512., 266220., 274284.,
      267156., 275256., 292464., 300960., 425457., 438120., 426915., 439632.,
      428373., 441144., 429831., 442656., 277452., 285948., 278388., 286920.,
      304560., 313488., 442953., 456264., 444411., 457776., 445869., 459288.,
      447327., 460800., 288684., 297612., 289620., 298584., 176148., 181776.,
      255504., 263892., 256368., 264792., 257232., 265692., 258096., 266592.,
      166068., 171696., 166620., 172272., 183348., 189264., 265872., 274692.,
      266736., 275592., 267600., 276492., 268464., 277392., 172692., 178608.,
      173244., 179184.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      68736., 72984., 69024., 73296., 69312., 73608., 69600., 73920., 69888.,
      74232., 70176., 74544., 70464., 74856., 72192., 76728., 72480., 77040.,
      72768., 77352., 73056., 77664., 73344., 77976., 73632., 78288., 73920.,
      78600., 75648., 80472., 75936., 80784., 76224., 81096., 76512., 81408.,
      76800., 81720., 77088., 82032., 77376., 82344., 79104., 84216., 79392.,
      84528., 79680., 84840., 79968., 85152., 80256., 85464., 80544., 85776.,
      80832., 86088., 82560., 87960., 82848., 88272., 83136., 88584., 83424.,
      88896., 83712., 89208., 84000., 89520., 84288., 89832., 86016., 91704.,
      86304., 92016., 86592., 92328., 86880., 92640., 87168., 92952., 87456.,
      93264., 87744., 93576., 89472., 95448., 89760., 95760., 90048., 96072.,
      90336., 96384., 90624., 96696., 90912., 97008., 91200., 97320.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      393204., 398232., 404016., 409056., 572838., 580344., 588948., 596472.,
      574962., 582504., 591144., 598704., 577086., 584664., 593340., 600936.,
      579210., 586824., 595536., 603168., 374460., 379512., 385272., 390336.,
      375828., 380904., 386688., 391776., 529434., 536544., 544680., 551808.,
      770319., 780930., 793026., 803664., 773181., 783846., 795996., 806688.,
      776043., 786762., 798966., 809712., 778905., 789678., 801936., 812736.,
      502830., 509976., 518076., 525240., 504666., 511848., 519984., 527184.,
      553194., 560736., 569304., 576864., 804663., 815922., 828666., 839952.,
      807525., 818838., 831636., 842976., 810387., 821754., 834606., 846000.,
      813249., 824670., 837576., 849024., 524862., 532440., 540972., 548568.,
      526698., 534312., 542880., 550512., 576954., 584928., 593928., 601920.,
      839007., 850914., 864306., 876240., 841869., 853830., 867276., 879264.,
      844731., 856746., 870246., 882288., 847593., 859662., 873216., 885312.,
      546894., 554904., 563868., 571896., 548730., 556776., 565776., 573840.,
      600714., 609120., 618552., 626976., 873351., 885906., 899946., 912528.,
      876213., 888822., 902916., 915552., 879075., 891738., 905886., 918576.,
      881937., 894654., 908856., 921600., 568926., 577368., 586764., 595224.,
      570762., 579240., 588672., 597168., 346980., 352296., 358224., 363552.,
      503070., 511008., 519828., 527784., 504762., 512736., 521592., 529584.,
      506454., 514464., 523356., 531384., 508146., 516192., 525120., 533184.,
      326796., 332136., 338040., 343392., 327876., 333240., 339168., 344544.,
      361092., 366696., 372912., 378528., 523374., 531744., 540996., 549384.,
      525066., 533472., 542760., 551184., 526758., 535200., 544524., 552984.,
      528450., 536928., 546288., 554784., 339756., 345384., 351576., 357216.,
      340836., 346488., 352704., 358368.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      133380., 137472., 141864., 145968., 133932., 138048., 142464., 146592.,
      134484., 138624., 143064., 147216., 135036., 139200., 143664., 147840.,
      135588., 139776., 144264., 148464., 136140., 140352., 144864., 149088.,
      136692., 140928., 145464., 149712., 140004., 144384., 149064., 153456.,
      140556., 144960., 149664., 154080., 141108., 145536., 150264., 154704.,
      141660., 146112., 150864., 155328., 142212., 146688., 151464., 155952.,
      142764., 147264., 152064., 156576., 143316., 147840., 152664., 157200.,
      146628., 151296., 156264., 160944., 147180., 151872., 156864., 161568.,
      147732., 152448., 157464., 162192., 148284., 153024., 158064., 162816.,
      148836., 153600., 158664., 163440., 149388., 154176., 159264., 164064.,
      149940., 154752., 159864., 164688., 153252., 158208., 163464., 168432.,
      153804., 158784., 164064., 169056., 154356., 159360., 164664., 169680.,
      154908., 159936., 165264., 170304., 155460., 160512., 165864., 170928.,
      156012., 161088., 166464., 171552., 156564., 161664., 167064., 172176.,
      159876., 165120., 170664., 175920., 160428., 165696., 171264., 176544.,
      160980., 166272., 171864., 177168., 161532., 166848., 172464., 177792.,
      162084., 167424., 173064., 178416., 162636., 168000., 173664., 179040.,
      163188., 168576., 174264., 179664., 166500., 172032., 177864., 183408.,
      167052., 172608., 178464., 184032., 167604., 173184., 179064., 184656.,
      168156., 173760., 179664., 185280., 168708., 174336., 180264., 185904.,
      169260., 174912., 180864., 186528., 169812., 175488., 181464., 187152.,
      173124., 178944., 185064., 190896., 173676., 179520., 185664., 191520.,
      174228., 180096., 186264., 192144., 174780., 180672., 186864., 192768.,
      175332., 181248., 187464., 193392., 175884., 181824., 188064., 194016.,
      176436., 182400., 188664., 194640.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      781380.,  786408.,  791436.,  796464.,  802992.,  808032.,  813072.,
      818112.,  1138170., 1145676., 1153182., 1160688., 1170372., 1177896.,
      1185420., 1192944., 1142382., 1149924., 1157466., 1165008., 1174728.,
      1182288., 1189848., 1197408., 1146594., 1154172., 1161750., 1169328.,
      1179084., 1186680., 1194276., 1201872., 1150806., 1158420., 1166034.,
      1173648., 1183440., 1191072., 1198704., 1206336., 743868.,  748920.,
      753972.,  759024.,  765480.,  770544.,  775608.,  780672.,  746580.,
      751656.,  756732.,  761808.,  768288.,  773376.,  778464.,  783552.,
      1051758., 1058868., 1065978., 1073088., 1082232., 1089360., 1096488.,
      1103616., 1530027., 1540638., 1551249., 1561860., 1575414., 1586052.,
      1596690., 1607328., 1535697., 1546362., 1557027., 1567692., 1581300.,
      1591992., 1602684., 1613376., 1541367., 1552086., 1562805., 1573524.,
      1587186., 1597932., 1608678., 1619424., 1547037., 1557810., 1568583.,
      1579356., 1593072., 1603872., 1614672., 1625472., 998514.,  1005660.,
      1012806., 1019952., 1028988., 1036152., 1043316., 1050480., 1002150.,
      1009332., 1016514., 1023696., 1032768., 1039968., 1047168., 1054368.,
      1098846., 1106388., 1113930., 1121472., 1131048., 1138608., 1146168.,
      1153728., 1598067., 1609326., 1620585., 1631844., 1646046., 1657332.,
      1668618., 1679904., 1603737., 1615050., 1626363., 1637676., 1651932.,
      1663272., 1674612., 1685952., 1609407., 1620774., 1632141., 1643508.,
      1657818., 1669212., 1680606., 1692000., 1615077., 1626498., 1637919.,
      1649340., 1663704., 1675152., 1686600., 1698048., 1042146., 1049724.,
      1057302., 1064880., 1074348., 1081944., 1089540., 1097136., 1045782.,
      1053396., 1061010., 1068624., 1078128., 1085760., 1093392., 1101024.,
      1145934., 1153908., 1161882., 1169856., 1179864., 1187856., 1195848.,
      1203840., 1666107., 1678014., 1689921., 1701828., 1716678., 1728612.,
      1740546., 1752480., 1671777., 1683738., 1695699., 1707660., 1722564.,
      1734552., 1746540., 1758528., 1677447., 1689462., 1701477., 1713492.,
      1728450., 1740492., 1752534., 1764576., 1683117., 1695186., 1707255.,
      1719324., 1734336., 1746432., 1758528., 1770624., 1085778., 1093788.,
      1101798., 1109808., 1119708., 1127736., 1135764., 1143792., 1089414.,
      1097460., 1105506., 1113552., 1123488., 1131552., 1139616., 1147680.,
      1193022., 1201428., 1209834., 1218240., 1228680., 1237104., 1245528.,
      1253952., 1734147., 1746702., 1759257., 1771812., 1787310., 1799892.,
      1812474., 1825056., 1739817., 1752426., 1765035., 1777644., 1793196.,
      1805832., 1818468., 1831104., 1745487., 1758150., 1770813., 1783476.,
      1799082., 1811772., 1824462., 1837152., 1751157., 1763874., 1776591.,
      1789308., 1804968., 1817712., 1830456., 1843200., 1129410., 1137852.,
      1146294., 1154736., 1165068., 1173528., 1181988., 1190448., 1133046.,
      1141524., 1150002., 1158480., 1168848., 1177344., 1185840., 1194336.,
      688644.,  693960.,  699276.,  704592.,  711120.,  716448.,  721776.,
      727104.,  998202.,  1006140., 1014078., 1022016., 1031700., 1039656.,
      1047612., 1055568., 1001550., 1009524., 1017498., 1025472., 1035192.,
      1043184., 1051176., 1059168., 1004898., 1012908., 1020918., 1028928.,
      1038684., 1046712., 1054740., 1062768., 1008246., 1016292., 1024338.,
      1032384., 1042176., 1050240., 1058304., 1066368., 648252.,  653592.,
      658932.,  664272.,  670728.,  676080.,  681432.,  686784.,  650388.,
      655752.,  661116.,  666480.,  672960.,  678336.,  683712.,  689088.,
      716580.,  722184.,  727788.,  733392.,  740208.,  745824.,  751440.,
      757056.,  1038378., 1046748., 1055118., 1063488., 1073604., 1081992.,
      1090380., 1098768., 1041726., 1050132., 1058538., 1066944., 1077096.,
      1085520., 1093944., 1102368., 1045074., 1053516., 1061958., 1070400.,
      1080588., 1089048., 1097508., 1105968., 1048422., 1056900., 1065378.,
      1073856., 1084080., 1092576., 1101072., 1109568., 673884.,  679512.,
      685140.,  690768.,  697512.,  703152.,  708792.,  714432.,  676020.,
      681672.,  687324.,  692976.,  699744.,  705408.,  711072.,  716736.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      262668., 266760., 270852., 274944., 279624., 283728., 287832., 291936.,
      263748., 267864., 271980., 276096., 280800., 284928., 289056., 293184.,
      264828., 268968., 273108., 277248., 281976., 286128., 290280., 294432.,
      265908., 270072., 274236., 278400., 283152., 287328., 291504., 295680.,
      266988., 271176., 275364., 279552., 284328., 288528., 292728., 296928.,
      268068., 272280., 276492., 280704., 285504., 289728., 293952., 298176.,
      269148., 273384., 277620., 281856., 286680., 290928., 295176., 299424.,
      275628., 280008., 284388., 288768., 293736., 298128., 302520., 306912.,
      276708., 281112., 285516., 289920., 294912., 299328., 303744., 308160.,
      277788., 282216., 286644., 291072., 296088., 300528., 304968., 309408.,
      278868., 283320., 287772., 292224., 297264., 301728., 306192., 310656.,
      279948., 284424., 288900., 293376., 298440., 302928., 307416., 311904.,
      281028., 285528., 290028., 294528., 299616., 304128., 308640., 313152.,
      282108., 286632., 291156., 295680., 300792., 305328., 309864., 314400.,
      288588., 293256., 297924., 302592., 307848., 312528., 317208., 321888.,
      289668., 294360., 299052., 303744., 309024., 313728., 318432., 323136.,
      290748., 295464., 300180., 304896., 310200., 314928., 319656., 324384.,
      291828., 296568., 301308., 306048., 311376., 316128., 320880., 325632.,
      292908., 297672., 302436., 307200., 312552., 317328., 322104., 326880.,
      293988., 298776., 303564., 308352., 313728., 318528., 323328., 328128.,
      295068., 299880., 304692., 309504., 314904., 319728., 324552., 329376.,
      301548., 306504., 311460., 316416., 321960., 326928., 331896., 336864.,
      302628., 307608., 312588., 317568., 323136., 328128., 333120., 338112.,
      303708., 308712., 313716., 318720., 324312., 329328., 334344., 339360.,
      304788., 309816., 314844., 319872., 325488., 330528., 335568., 340608.,
      305868., 310920., 315972., 321024., 326664., 331728., 336792., 341856.,
      306948., 312024., 317100., 322176., 327840., 332928., 338016., 343104.,
      308028., 313128., 318228., 323328., 329016., 334128., 339240., 344352.,
      314508., 319752., 324996., 330240., 336072., 341328., 346584., 351840.,
      315588., 320856., 326124., 331392., 337248., 342528., 347808., 353088.,
      316668., 321960., 327252., 332544., 338424., 343728., 349032., 354336.,
      317748., 323064., 328380., 333696., 339600., 344928., 350256., 355584.,
      318828., 324168., 329508., 334848., 340776., 346128., 351480., 356832.,
      319908., 325272., 330636., 336000., 341952., 347328., 352704., 358080.,
      320988., 326376., 331764., 337152., 343128., 348528., 353928., 359328.,
      327468., 333000., 338532., 344064., 350184., 355728., 361272., 366816.,
      328548., 334104., 339660., 345216., 351360., 356928., 362496., 368064.,
      329628., 335208., 340788., 346368., 352536., 358128., 363720., 369312.,
      330708., 336312., 341916., 347520., 353712., 359328., 364944., 370560.,
      331788., 337416., 343044., 348672., 354888., 360528., 366168., 371808.,
      332868., 338520., 344172., 349824., 356064., 361728., 367392., 373056.,
      333948., 339624., 345300., 350976., 357240., 362928., 368616., 374304.,
      340428., 346248., 352068., 357888., 364296., 370128., 375960., 381792.,
      341508., 347352., 353196., 359040., 365472., 371328., 377184., 383040.,
      342588., 348456., 354324., 360192., 366648., 372528., 378408., 384288.,
      343668., 349560., 355452., 361344., 367824., 373728., 379632., 385536.,
      344748., 350664., 356580., 362496., 369000., 374928., 380856., 386784.,
      345828., 351768., 357708., 363648., 370176., 376128., 382080., 388032.,
      346908., 352872., 358836., 364800., 371352., 377328., 383304., 389280.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      785676.,  796464.,  807276.,  818112.,  1144614., 1160688., 1176798.,
      1192944., 1148862., 1165008., 1181190., 1197408., 1153110., 1169328.,
      1185582., 1201872., 1157358., 1173648., 1189974., 1206336., 748236.,
      759024.,  769836.,  780672.,  750972.,  761808.,  772668.,  783552.,
      1057878., 1073088., 1088334., 1103616., 1539207., 1561860., 1584567.,
      1607328., 1544931., 1567692., 1590507., 1613376., 1550655., 1573524.,
      1596447., 1619424., 1556379., 1579356., 1602387., 1625472., 1004742.,
      1019952., 1035198., 1050480., 1008414., 1023696., 1039014., 1054368.,
      1105398., 1121472., 1137582., 1153728., 1607895., 1631844., 1655847.,
      1679904., 1613619., 1637676., 1661787., 1685952., 1619343., 1643508.,
      1667727., 1692000., 1625067., 1649340., 1673667., 1698048., 1048806.,
      1064880., 1080990., 1097136., 1052478., 1068624., 1084806., 1101024.,
      1152918., 1169856., 1186830., 1203840., 1676583., 1701828., 1727127.,
      1752480., 1682307., 1707660., 1733067., 1758528., 1688031., 1713492.,
      1739007., 1764576., 1693755., 1719324., 1744947., 1770624., 1092870.,
      1109808., 1126782., 1143792., 1096542., 1113552., 1130598., 1147680.,
      1200438., 1218240., 1236078., 1253952., 1745271., 1771812., 1798407.,
      1825056., 1750995., 1777644., 1804347., 1831104., 1756719., 1783476.,
      1810287., 1837152., 1762443., 1789308., 1816227., 1843200., 1136934.,
      1154736., 1172574., 1190448., 1140606., 1158480., 1176390., 1194336.,
      693372.,  704592.,  715836.,  727104.,  1005294., 1022016., 1038774.,
      1055568., 1008678., 1025472., 1042302., 1059168., 1012062., 1028928.,
      1045830., 1062768., 1015446., 1032384., 1049358., 1066368., 653052.,
      664272.,  675516.,  686784.,  655212.,  666480.,  677772.,  689088.,
      721596.,  733392.,  745212.,  757056.,  1045902., 1063488., 1081110.,
      1098768., 1049286., 1066944., 1084638., 1102368., 1052670., 1070400.,
      1088166., 1105968., 1056054., 1073856., 1091694., 1109568., 678972.,
      690768.,  702588.,  714432.,  681132.,  692976.,  704844.,  716736.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      266484., 274944., 283428., 291936., 267588., 276096., 284628., 293184.,
      268692., 277248., 285828., 294432., 269796., 278400., 287028., 295680.,
      270900., 279552., 288228., 296928., 272004., 280704., 289428., 298176.,
      273108., 281856., 290628., 299424., 279732., 288768., 297828., 306912.,
      280836., 289920., 299028., 308160., 281940., 291072., 300228., 309408.,
      283044., 292224., 301428., 310656., 284148., 293376., 302628., 311904.,
      285252., 294528., 303828., 313152., 286356., 295680., 305028., 314400.,
      292980., 302592., 312228., 321888., 294084., 303744., 313428., 323136.,
      295188., 304896., 314628., 324384., 296292., 306048., 315828., 325632.,
      297396., 307200., 317028., 326880., 298500., 308352., 318228., 328128.,
      299604., 309504., 319428., 329376., 306228., 316416., 326628., 336864.,
      307332., 317568., 327828., 338112., 308436., 318720., 329028., 339360.,
      309540., 319872., 330228., 340608., 310644., 321024., 331428., 341856.,
      311748., 322176., 332628., 343104., 312852., 323328., 333828., 344352.,
      319476., 330240., 341028., 351840., 320580., 331392., 342228., 353088.,
      321684., 332544., 343428., 354336., 322788., 333696., 344628., 355584.,
      323892., 334848., 345828., 356832., 324996., 336000., 347028., 358080.,
      326100., 337152., 348228., 359328., 332724., 344064., 355428., 366816.,
      333828., 345216., 356628., 368064., 334932., 346368., 357828., 369312.,
      336036., 347520., 359028., 370560., 337140., 348672., 360228., 371808.,
      338244., 349824., 361428., 373056., 339348., 350976., 362628., 374304.,
      345972., 357888., 369828., 381792., 347076., 359040., 371028., 383040.,
      348180., 360192., 372228., 384288., 349284., 361344., 373428., 385536.,
      350388., 362496., 374628., 386784., 351492., 363648., 375828., 388032.,
      352596., 364800., 377028., 389280.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1561308., 1571352., 1582872., 1592928., 1604484., 1614552., 1626144.,
      1636224., 2274234., 2289228., 2306364., 2321376., 2338566., 2353596.,
      2370840., 2385888., 2282658., 2297724., 2314932., 2330016., 2347278.,
      2362380., 2379696., 2394816., 2291082., 2306220., 2323500., 2338656.,
      2355990., 2371164., 2388552., 2403744., 2299506., 2314716., 2332068.,
      2347296., 2364702., 2379948., 2397408., 2412672., 1486380., 1496472.,
      1507944., 1518048., 1529556., 1539672., 1551216., 1561344., 1491804.,
      1501944., 1513464., 1523616., 1535172., 1545336., 1556928., 1567104.,
      2101554., 2115756., 2131956., 2146176., 2162430., 2176668., 2192976.,
      2207232., 3057219., 3078414., 3102498., 3123720., 3147885., 3169134.,
      3193380., 3214656., 3068559., 3089862., 3114054., 3135384., 3159657.,
      3181014., 3205368., 3226752., 3079899., 3101310., 3125610., 3147048.,
      3171429., 3192894., 3217356., 3238848., 3091239., 3112758., 3137166.,
      3158712., 3183201., 3204774., 3229344., 3250944., 1995210., 2009484.,
      2025612., 2039904., 2056086., 2070396., 2086632., 2100960., 2002482.,
      2016828., 2033028., 2047392., 2063646., 2078028., 2094336., 2108736.,
      2195730., 2210796., 2227860., 2242944., 2260062., 2275164., 2292336.,
      2307456., 3193299., 3215790., 3241170., 3263688., 3289149., 3311694.,
      3337236., 3359808., 3204639., 3227238., 3252726., 3275352., 3300921.,
      3323574., 3349224., 3371904., 3215979., 3238686., 3264282., 3287016.,
      3312693., 3335454., 3361212., 3384000., 3227319., 3250134., 3275838.,
      3298680., 3324465., 3347334., 3373200., 3396096., 2082474., 2097612.,
      2114604., 2129760., 2146806., 2161980., 2179080., 2194272., 2089746.,
      2104956., 2122020., 2137248., 2154366., 2169612., 2186784., 2202048.,
      2289906., 2305836., 2323764., 2339712., 2357694., 2373660., 2391696.,
      2407680., 3329379., 3353166., 3379842., 3403656., 3430413., 3454254.,
      3481092., 3504960., 3340719., 3364614., 3391398., 3415320., 3442185.,
      3466134., 3493080., 3517056., 3352059., 3376062., 3402954., 3426984.,
      3453957., 3478014., 3505068., 3529152., 3363399., 3387510., 3414510.,
      3438648., 3465729., 3489894., 3517056., 3541248., 2169738., 2185740.,
      2203596., 2219616., 2237526., 2253564., 2271528., 2287584., 2177010.,
      2193084., 2211012., 2227104., 2245086., 2261196., 2279232., 2295360.,
      2384082., 2400876., 2419668., 2436480., 2455326., 2472156., 2491056.,
      2507904., 3465459., 3490542., 3518514., 3543624., 3571677., 3596814.,
      3624948., 3650112., 3476799., 3501990., 3530070., 3555288., 3583449.,
      3608694., 3636936., 3662208., 3488139., 3513438., 3541626., 3566952.,
      3595221., 3620574., 3648924., 3674304., 3499479., 3524886., 3553182.,
      3578616., 3606993., 3632454., 3660912., 3686400., 2257002., 2273868.,
      2292588., 2309472., 2328246., 2345148., 2363976., 2380896., 2264274.,
      2281212., 2300004., 2316960., 2335806., 2352780., 2371680., 2388672.,
      1376124., 1386744., 1398552., 1409184., 1421028., 1431672., 1443552.,
      1454208., 1994730., 2010588., 2028156., 2044032., 2061654., 2077548.,
      2095224., 2111136., 2001426., 2017356., 2034996., 2050944., 2068638.,
      2084604., 2102352., 2118336., 2008122., 2024124., 2041836., 2057856.,
      2075622., 2091660., 2109480., 2125536., 2014818., 2030892., 2048676.,
      2064768., 2082606., 2098716., 2116608., 2132736., 1295436., 1306104.,
      1317864., 1328544., 1340340., 1351032., 1362864., 1373568., 1299708.,
      1310424., 1322232., 1332960., 1344804., 1355544., 1367424., 1378176.,
      1431996., 1443192., 1455576., 1466784., 1479204., 1490424., 1502880.,
      1514112., 2075082., 2091804., 2110236., 2126976., 2145462., 2162220.,
      2180760., 2197536., 2081778., 2098572., 2117076., 2133888., 2152446.,
      2169276., 2187888., 2204736., 2088474., 2105340., 2123916., 2140800.,
      2159430., 2176332., 2195016., 2211936., 2095170., 2112108., 2130756.,
      2147712., 2166414., 2183388., 2202144., 2219136., 1346700., 1357944.,
      1370280., 1381536., 1393908., 1405176., 1417584., 1428864., 1350972.,
      1362264., 1374648., 1385952., 1398372., 1409688., 1422144., 1433472.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      524796., 532968., 541704., 549888., 558660., 566856., 575664., 583872.,
      526956., 535176., 543960., 552192., 561012., 569256., 578112., 586368.,
      529116., 537384., 546216., 554496., 563364., 571656., 580560., 588864.,
      531276., 539592., 548472., 556800., 565716., 574056., 583008., 591360.,
      533436., 541800., 550728., 559104., 568068., 576456., 585456., 593856.,
      535596., 544008., 552984., 561408., 570420., 578856., 587904., 596352.,
      537756., 546216., 555240., 563712., 572772., 581256., 590352., 598848.,
      550716., 559464., 568776., 577536., 586884., 595656., 605040., 613824.,
      552876., 561672., 571032., 579840., 589236., 598056., 607488., 616320.,
      555036., 563880., 573288., 582144., 591588., 600456., 609936., 618816.,
      557196., 566088., 575544., 584448., 593940., 602856., 612384., 621312.,
      559356., 568296., 577800., 586752., 596292., 605256., 614832., 623808.,
      561516., 570504., 580056., 589056., 598644., 607656., 617280., 626304.,
      563676., 572712., 582312., 591360., 600996., 610056., 619728., 628800.,
      576636., 585960., 595848., 605184., 615108., 624456., 634416., 643776.,
      578796., 588168., 598104., 607488., 617460., 626856., 636864., 646272.,
      580956., 590376., 600360., 609792., 619812., 629256., 639312., 648768.,
      583116., 592584., 602616., 612096., 622164., 631656., 641760., 651264.,
      585276., 594792., 604872., 614400., 624516., 634056., 644208., 653760.,
      587436., 597000., 607128., 616704., 626868., 636456., 646656., 656256.,
      589596., 599208., 609384., 619008., 629220., 638856., 649104., 658752.,
      602556., 612456., 622920., 632832., 643332., 653256., 663792., 673728.,
      604716., 614664., 625176., 635136., 645684., 655656., 666240., 676224.,
      606876., 616872., 627432., 637440., 648036., 658056., 668688., 678720.,
      609036., 619080., 629688., 639744., 650388., 660456., 671136., 681216.,
      611196., 621288., 631944., 642048., 652740., 662856., 673584., 683712.,
      613356., 623496., 634200., 644352., 655092., 665256., 676032., 686208.,
      615516., 625704., 636456., 646656., 657444., 667656., 678480., 688704.,
      628476., 638952., 649992., 660480., 671556., 682056., 693168., 703680.,
      630636., 641160., 652248., 662784., 673908., 684456., 695616., 706176.,
      632796., 643368., 654504., 665088., 676260., 686856., 698064., 708672.,
      634956., 645576., 656760., 667392., 678612., 689256., 700512., 711168.,
      637116., 647784., 659016., 669696., 680964., 691656., 702960., 713664.,
      639276., 649992., 661272., 672000., 683316., 694056., 705408., 716160.,
      641436., 652200., 663528., 674304., 685668., 696456., 707856., 718656.,
      654396., 665448., 677064., 688128., 699780., 710856., 722544., 733632.,
      656556., 667656., 679320., 690432., 702132., 713256., 724992., 736128.,
      658716., 669864., 681576., 692736., 704484., 715656., 727440., 738624.,
      660876., 672072., 683832., 695040., 706836., 718056., 729888., 741120.,
      663036., 674280., 686088., 697344., 709188., 720456., 732336., 743616.,
      665196., 676488., 688344., 699648., 711540., 722856., 734784., 746112.,
      667356., 678696., 690600., 701952., 713892., 725256., 737232., 748608.,
      680316., 691944., 704136., 715776., 728004., 739656., 751920., 763584.,
      682476., 694152., 706392., 718080., 730356., 742056., 754368., 766080.,
      684636., 696360., 708648., 720384., 732708., 744456., 756816., 768576.,
      686796., 698568., 710904., 722688., 735060., 746856., 759264., 771072.,
      688956., 700776., 713160., 724992., 737412., 749256., 761712., 773568.,
      691116., 702984., 715416., 727296., 739764., 751656., 764160., 776064.,
      693276., 705192., 717672., 729600., 742116., 754056., 766608., 778560.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3112572., 3122616., 3132660., 3142704., 3155688., 3165744., 3175800.,
      3185856., 3198900., 3208968., 3219036., 3229104., 3242208., 3252288.,
      3262368., 3272448., 4533474., 4548468., 4563462., 4578456., 4597716.,
      4612728., 4627740., 4642752., 4662102., 4677132., 4692162., 4707192.,
      4726632., 4741680., 4756728., 4771776., 4550250., 4565316., 4580382.,
      4595448., 4614780., 4629864., 4644948., 4660032., 4679454., 4694556.,
      4709658., 4724760., 4744272., 4759392., 4774512., 4789632., 4567026.,
      4582164., 4597302., 4612440., 4631844., 4647000., 4662156., 4677312.,
      4696806., 4711980., 4727154., 4742328., 4761912., 4777104., 4792296.,
      4807488., 4583802., 4599012., 4614222., 4629432., 4648908., 4664136.,
      4679364., 4694592., 4714158., 4729404., 4744650., 4759896., 4779552.,
      4794816., 4810080., 4825344., 2962668., 2972760., 2982852., 2992944.,
      3005784., 3015888., 3025992., 3036096., 3048996., 3059112., 3069228.,
      3079344., 3092304., 3102432., 3112560., 3122688., 2973468., 2983608.,
      2993748., 3003888., 3016776., 3026928., 3037080., 3047232., 3060180.,
      3070344., 3080508., 3090672., 3103680., 3113856., 3124032., 3134208.,
      4188906., 4203108., 4217310., 4231512., 4249692., 4263912., 4278132.,
      4292352., 4310622., 4324860., 4339098., 4353336., 4371696., 4385952.,
      4400208., 4414464., 6093243., 6114438., 6135633., 6156828., 6183774.,
      6204996., 6226218., 6247440., 6274521., 6295770., 6317019., 6338268.,
      6365484., 6386760., 6408036., 6429312., 6115815., 6137118., 6158421.,
      6179724., 6206778., 6228108., 6249438., 6270768., 6297957., 6319314.,
      6340671., 6362028., 6389352., 6410736., 6432120., 6453504., 6138387.,
      6159798., 6181209., 6202620., 6229782., 6251220., 6272658., 6294096.,
      6321393., 6342858., 6364323., 6385788., 6413220., 6434712., 6456204.,
      6477696., 6160959., 6182478., 6203997., 6225516., 6252786., 6274332.,
      6295878., 6317424., 6344829., 6366402., 6387975., 6409548., 6437088.,
      6458688., 6480288., 6501888., 3976146., 3990420., 4004694., 4018968.,
      4036932., 4051224., 4065516., 4079808., 4097862., 4112172., 4126482.,
      4140792., 4158936., 4173264., 4187592., 4201920., 3990618., 4004964.,
      4019310., 4033656., 4051692., 4066056., 4080420., 4094784., 4112910.,
      4127292., 4141674., 4156056., 4174272., 4188672., 4203072., 4217472.,
      4376394., 4391460., 4406526., 4421592., 4440636., 4455720., 4470804.,
      4485888., 4505022., 4520124., 4535226., 4550328., 4569552., 4584672.,
      4599792., 4614912., 6364107., 6386598., 6409089., 6431580., 6459822.,
      6482340., 6504858., 6527376., 6555753., 6578298., 6600843., 6623388.,
      6651900., 6674472., 6697044., 6719616., 6386679., 6409278., 6431877.,
      6454476., 6482826., 6505452., 6528078., 6550704., 6579189., 6601842.,
      6624495., 6647148., 6675768., 6698448., 6721128., 6743808., 6409251.,
      6431958., 6454665., 6477372., 6505830., 6528564., 6551298., 6574032.,
      6602625., 6625386., 6648147., 6670908., 6699636., 6722424., 6745212.,
      6768000., 6431823., 6454638., 6477453., 6500268., 6528834., 6551676.,
      6574518., 6597360., 6626061., 6648930., 6671799., 6694668., 6723504.,
      6746400., 6769296., 6792192., 4149810., 4164948., 4180086., 4195224.,
      4214052., 4229208., 4244364., 4259520., 4278438., 4293612., 4308786.,
      4323960., 4342968., 4358160., 4373352., 4388544., 4164282., 4179492.,
      4194702., 4209912., 4228812., 4244040., 4259268., 4274496., 4293486.,
      4308732., 4323978., 4339224., 4358304., 4373568., 4388832., 4404096.,
      4563882., 4579812., 4595742., 4611672., 4631580., 4647528., 4663476.,
      4679424., 4699422., 4715388., 4731354., 4747320., 4767408., 4783392.,
      4799376., 4815360., 6634971., 6658758., 6682545., 6706332., 6735870.,
      6759684., 6783498., 6807312., 6836985., 6860826., 6884667., 6908508.,
      6938316., 6962184., 6986052., 7009920., 6657543., 6681438., 6705333.,
      6729228., 6758874., 6782796., 6806718., 6830640., 6860421., 6884370.,
      6908319., 6932268., 6962184., 6986160., 7010136., 7034112., 6680115.,
      6704118., 6728121., 6752124., 6781878., 6805908., 6829938., 6853968.,
      6883857., 6907914., 6931971., 6956028., 6986052., 7010136., 7034220.,
      7058304., 6702687., 6726798., 6750909., 6775020., 6804882., 6829020.,
      6853158., 6877296., 6907293., 6931458., 6955623., 6979788., 7009920.,
      7034112., 7058304., 7082496., 4323474., 4339476., 4355478., 4371480.,
      4391172., 4407192., 4423212., 4439232., 4459014., 4475052., 4491090.,
      4507128., 4527000., 4543056., 4559112., 4575168., 4337946., 4354020.,
      4370094., 4386168., 4405932., 4422024., 4438116., 4454208., 4474062.,
      4490172., 4506282., 4522392., 4542336., 4558464., 4574592., 4590720.,
      4751370., 4768164., 4784958., 4801752., 4822524., 4839336., 4856148.,
      4872960., 4893822., 4910652., 4927482., 4944312., 4965264., 4982112.,
      4998960., 5015808., 6905835., 6930918., 6956001., 6981084., 7011918.,
      7037028., 7062138., 7087248., 7118217., 7143354., 7168491., 7193628.,
      7224732., 7249896., 7275060., 7300224., 6928407., 6953598., 6978789.,
      7003980., 7034922., 7060140., 7085358., 7110576., 7141653., 7166898.,
      7192143., 7217388., 7248600., 7273872., 7299144., 7324416., 6950979.,
      6976278., 7001577., 7026876., 7057926., 7083252., 7108578., 7133904.,
      7165089., 7190442., 7215795., 7241148., 7272468., 7297848., 7323228.,
      7348608., 6973551., 6998958., 7024365., 7049772., 7080930., 7106364.,
      7131798., 7157232., 7188525., 7213986., 7239447., 7264908., 7296336.,
      7321824., 7347312., 7372800., 4497138., 4514004., 4530870., 4547736.,
      4568292., 4585176., 4602060., 4618944., 4639590., 4656492., 4673394.,
      4690296., 4711032., 4727952., 4744872., 4761792., 4511610., 4528548.,
      4545486., 4562424., 4583052., 4600008., 4616964., 4633920., 4654638.,
      4671612., 4688586., 4705560., 4726368., 4743360., 4760352., 4777344.,
      2741628., 2752248., 2762868., 2773488., 2786472., 2797104., 2807736.,
      2818368., 2831412., 2842056., 2852700., 2863344., 2876448., 2887104.,
      2897760., 2908416., 3973602., 3989460., 4005318., 4021176., 4040436.,
      4056312., 4072188., 4088064., 4107414., 4123308., 4139202., 4155096.,
      4174536., 4190448., 4206360., 4222272., 3986922., 4002852., 4018782.,
      4034712., 4054044., 4069992., 4085940., 4101888., 4121310., 4137276.,
      4153242., 4169208., 4188720., 4204704., 4220688., 4236672., 4000242.,
      4016244., 4032246., 4048248., 4067652., 4083672., 4099692., 4115712.,
      4135206., 4151244., 4167282., 4183320., 4202904., 4218960., 4235016.,
      4251072., 4013562., 4029636., 4045710., 4061784., 4081260., 4097352.,
      4113444., 4129536., 4149102., 4165212., 4181322., 4197432., 4217088.,
      4233216., 4249344., 4265472., 2580204., 2590872., 2601540., 2612208.,
      2625048., 2635728., 2646408., 2657088., 2669988., 2680680., 2691372.,
      2702064., 2715024., 2725728., 2736432., 2747136., 2588700., 2599416.,
      2610132., 2620848., 2633736., 2644464., 2655192., 2665920., 2678868.,
      2689608., 2700348., 2711088., 2724096., 2734848., 2745600., 2756352.,
      2852796., 2863992., 2875188., 2886384., 2899944., 2911152., 2922360.,
      2933568., 2947188., 2958408., 2969628., 2980848., 2994528., 3005760.,
      3016992., 3028224., 4133442., 4150164., 4166886., 4183608., 4203732.,
      4220472., 4237212., 4253952., 4274166., 4290924., 4307682., 4324440.,
      4344744., 4361520., 4378296., 4395072., 4146762., 4163556., 4180350.,
      4197144., 4217340., 4234152., 4250964., 4267776., 4288062., 4304892.,
      4321722., 4338552., 4358928., 4375776., 4392624., 4409472., 4160082.,
      4176948., 4193814., 4210680., 4230948., 4247832., 4264716., 4281600.,
      4301958., 4318860., 4335762., 4352664., 4373112., 4390032., 4406952.,
      4423872., 4173402., 4190340., 4207278., 4224216., 4244556., 4261512.,
      4278468., 4295424., 4315854., 4332828., 4349802., 4366776., 4387296.,
      4404288., 4421280., 4438272., 2682156., 2693400., 2704644., 2715888.,
      2729304., 2740560., 2751816., 2763072., 2776548., 2787816., 2799084.,
      2810352., 2823888., 2835168., 2846448., 2857728., 2690652., 2701944.,
      2713236., 2724528., 2737992., 2749296., 2760600., 2771904., 2785428.,
      2796744., 2808060., 2819376., 2832960., 2844288., 2855616., 2866944.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1041420., 1049592., 1057764., 1065936., 1075224., 1083408., 1091592.,
      1099776., 1109124., 1117320., 1125516., 1133712., 1143120., 1151328.,
      1159536., 1167744., 1045692., 1053912., 1062132., 1070352., 1079688.,
      1087920., 1096152., 1104384., 1113780., 1122024., 1130268., 1138512.,
      1147968., 1156224., 1164480., 1172736., 1049964., 1058232., 1066500.,
      1074768., 1084152., 1092432., 1100712., 1108992., 1118436., 1126728.,
      1135020., 1143312., 1152816., 1161120., 1169424., 1177728., 1054236.,
      1062552., 1070868., 1079184., 1088616., 1096944., 1105272., 1113600.,
      1123092., 1131432., 1139772., 1148112., 1157664., 1166016., 1174368.,
      1182720., 1058508., 1066872., 1075236., 1083600., 1093080., 1101456.,
      1109832., 1118208., 1127748., 1136136., 1144524., 1152912., 1162512.,
      1170912., 1179312., 1187712., 1062780., 1071192., 1079604., 1088016.,
      1097544., 1105968., 1114392., 1122816., 1132404., 1140840., 1149276.,
      1157712., 1167360., 1175808., 1184256., 1192704., 1067052., 1075512.,
      1083972., 1092432., 1102008., 1110480., 1118952., 1127424., 1137060.,
      1145544., 1154028., 1162512., 1172208., 1180704., 1189200., 1197696.,
      1092684., 1101432., 1110180., 1118928., 1128792., 1137552., 1146312.,
      1155072., 1164996., 1173768., 1182540., 1191312., 1201296., 1210080.,
      1218864., 1227648., 1096956., 1105752., 1114548., 1123344., 1133256.,
      1142064., 1150872., 1159680., 1169652., 1178472., 1187292., 1196112.,
      1206144., 1214976., 1223808., 1232640., 1101228., 1110072., 1118916.,
      1127760., 1137720., 1146576., 1155432., 1164288., 1174308., 1183176.,
      1192044., 1200912., 1210992., 1219872., 1228752., 1237632., 1105500.,
      1114392., 1123284., 1132176., 1142184., 1151088., 1159992., 1168896.,
      1178964., 1187880., 1196796., 1205712., 1215840., 1224768., 1233696.,
      1242624., 1109772., 1118712., 1127652., 1136592., 1146648., 1155600.,
      1164552., 1173504., 1183620., 1192584., 1201548., 1210512., 1220688.,
      1229664., 1238640., 1247616., 1114044., 1123032., 1132020., 1141008.,
      1151112., 1160112., 1169112., 1178112., 1188276., 1197288., 1206300.,
      1215312., 1225536., 1234560., 1243584., 1252608., 1118316., 1127352.,
      1136388., 1145424., 1155576., 1164624., 1173672., 1182720., 1192932.,
      1201992., 1211052., 1220112., 1230384., 1239456., 1248528., 1257600.,
      1143948., 1153272., 1162596., 1171920., 1182360., 1191696., 1201032.,
      1210368., 1220868., 1230216., 1239564., 1248912., 1259472., 1268832.,
      1278192., 1287552., 1148220., 1157592., 1166964., 1176336., 1186824.,
      1196208., 1205592., 1214976., 1225524., 1234920., 1244316., 1253712.,
      1264320., 1273728., 1283136., 1292544., 1152492., 1161912., 1171332.,
      1180752., 1191288., 1200720., 1210152., 1219584., 1230180., 1239624.,
      1249068., 1258512., 1269168., 1278624., 1288080., 1297536., 1156764.,
      1166232., 1175700., 1185168., 1195752., 1205232., 1214712., 1224192.,
      1234836., 1244328., 1253820., 1263312., 1274016., 1283520., 1293024.,
      1302528., 1161036., 1170552., 1180068., 1189584., 1200216., 1209744.,
      1219272., 1228800., 1239492., 1249032., 1258572., 1268112., 1278864.,
      1288416., 1297968., 1307520., 1165308., 1174872., 1184436., 1194000.,
      1204680., 1214256., 1223832., 1233408., 1244148., 1253736., 1263324.,
      1272912., 1283712., 1293312., 1302912., 1312512., 1169580., 1179192.,
      1188804., 1198416., 1209144., 1218768., 1228392., 1238016., 1248804.,
      1258440., 1268076., 1277712., 1288560., 1298208., 1307856., 1317504.,
      1195212., 1205112., 1215012., 1224912., 1235928., 1245840., 1255752.,
      1265664., 1276740., 1286664., 1296588., 1306512., 1317648., 1327584.,
      1337520., 1347456., 1199484., 1209432., 1219380., 1229328., 1240392.,
      1250352., 1260312., 1270272., 1281396., 1291368., 1301340., 1311312.,
      1322496., 1332480., 1342464., 1352448., 1203756., 1213752., 1223748.,
      1233744., 1244856., 1254864., 1264872., 1274880., 1286052., 1296072.,
      1306092., 1316112., 1327344., 1337376., 1347408., 1357440., 1208028.,
      1218072., 1228116., 1238160., 1249320., 1259376., 1269432., 1279488.,
      1290708., 1300776., 1310844., 1320912., 1332192., 1342272., 1352352.,
      1362432., 1212300., 1222392., 1232484., 1242576., 1253784., 1263888.,
      1273992., 1284096., 1295364., 1305480., 1315596., 1325712., 1337040.,
      1347168., 1357296., 1367424., 1216572., 1226712., 1236852., 1246992.,
      1258248., 1268400., 1278552., 1288704., 1300020., 1310184., 1320348.,
      1330512., 1341888., 1352064., 1362240., 1372416., 1220844., 1231032.,
      1241220., 1251408., 1262712., 1272912., 1283112., 1293312., 1304676.,
      1314888., 1325100., 1335312., 1346736., 1356960., 1367184., 1377408.,
      1246476., 1256952., 1267428., 1277904., 1289496., 1299984., 1310472.,
      1320960., 1332612., 1343112., 1353612., 1364112., 1375824., 1386336.,
      1396848., 1407360., 1250748., 1261272., 1271796., 1282320., 1293960.,
      1304496., 1315032., 1325568., 1337268., 1347816., 1358364., 1368912.,
      1380672., 1391232., 1401792., 1412352., 1255020., 1265592., 1276164.,
      1286736., 1298424., 1309008., 1319592., 1330176., 1341924., 1352520.,
      1363116., 1373712., 1385520., 1396128., 1406736., 1417344., 1259292.,
      1269912., 1280532., 1291152., 1302888., 1313520., 1324152., 1334784.,
      1346580., 1357224., 1367868., 1378512., 1390368., 1401024., 1411680.,
      1422336., 1263564., 1274232., 1284900., 1295568., 1307352., 1318032.,
      1328712., 1339392., 1351236., 1361928., 1372620., 1383312., 1395216.,
      1405920., 1416624., 1427328., 1267836., 1278552., 1289268., 1299984.,
      1311816., 1322544., 1333272., 1344000., 1355892., 1366632., 1377372.,
      1388112., 1400064., 1410816., 1421568., 1432320., 1272108., 1282872.,
      1293636., 1304400., 1316280., 1327056., 1337832., 1348608., 1360548.,
      1371336., 1382124., 1392912., 1404912., 1415712., 1426512., 1437312.,
      1297740., 1308792., 1319844., 1330896., 1343064., 1354128., 1365192.,
      1376256., 1388484., 1399560., 1410636., 1421712., 1434000., 1445088.,
      1456176., 1467264., 1302012., 1313112., 1324212., 1335312., 1347528.,
      1358640., 1369752., 1380864., 1393140., 1404264., 1415388., 1426512.,
      1438848., 1449984., 1461120., 1472256., 1306284., 1317432., 1328580.,
      1339728., 1351992., 1363152., 1374312., 1385472., 1397796., 1408968.,
      1420140., 1431312., 1443696., 1454880., 1466064., 1477248., 1310556.,
      1321752., 1332948., 1344144., 1356456., 1367664., 1378872., 1390080.,
      1402452., 1413672., 1424892., 1436112., 1448544., 1459776., 1471008.,
      1482240., 1314828., 1326072., 1337316., 1348560., 1360920., 1372176.,
      1383432., 1394688., 1407108., 1418376., 1429644., 1440912., 1453392.,
      1464672., 1475952., 1487232., 1319100., 1330392., 1341684., 1352976.,
      1365384., 1376688., 1387992., 1399296., 1411764., 1423080., 1434396.,
      1445712., 1458240., 1469568., 1480896., 1492224., 1323372., 1334712.,
      1346052., 1357392., 1369848., 1381200., 1392552., 1403904., 1416420.,
      1427784., 1439148., 1450512., 1463088., 1474464., 1485840., 1497216.,
      1349004., 1360632., 1372260., 1383888., 1396632., 1408272., 1419912.,
      1431552., 1444356., 1456008., 1467660., 1479312., 1492176., 1503840.,
      1515504., 1527168., 1353276., 1364952., 1376628., 1388304., 1401096.,
      1412784., 1424472., 1436160., 1449012., 1460712., 1472412., 1484112.,
      1497024., 1508736., 1520448., 1532160., 1357548., 1369272., 1380996.,
      1392720., 1405560., 1417296., 1429032., 1440768., 1453668., 1465416.,
      1477164., 1488912., 1501872., 1513632., 1525392., 1537152., 1361820.,
      1373592., 1385364., 1397136., 1410024., 1421808., 1433592., 1445376.,
      1458324., 1470120., 1481916., 1493712., 1506720., 1518528., 1530336.,
      1542144., 1366092., 1377912., 1389732., 1401552., 1414488., 1426320.,
      1438152., 1449984., 1462980., 1474824., 1486668., 1498512., 1511568.,
      1523424., 1535280., 1547136., 1370364., 1382232., 1394100., 1405968.,
      1418952., 1430832., 1442712., 1454592., 1467636., 1479528., 1491420.,
      1503312., 1516416., 1528320., 1540224., 1552128., 1374636., 1386552.,
      1398468., 1410384., 1423416., 1435344., 1447272., 1459200., 1472292.,
      1484232., 1496172., 1508112., 1521264., 1533216., 1545168., 1557120.};
  const std::array<int, 4> in_shape = {{3, 12, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      117858., 118236., 154260., 154752., 113448., 113808., 114168.,
      158895., 159408., 207786., 208452., 152658., 153144., 153630.,
      166077., 166590., 217110., 217776., 159462., 159948., 160434.,
      173259., 173772., 226434., 227100., 166266., 166752., 167238.,
      180441., 180954., 235758., 236424., 173070., 173556., 174042.,
      104502., 104808., 136284., 136680., 99840.,  100128., 100416.,
      108786., 109092., 141828., 142224., 103872., 104160., 104448.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      21246., 21324., 21402., 21480., 21558., 21636., 21714., 22338., 22416.,
      22494., 22572., 22650., 22728., 22806., 23430., 23508., 23586., 23664.,
      23742., 23820., 23898., 24522., 24600., 24678., 24756., 24834., 24912.,
      24990., 25614., 25692., 25770., 25848., 25926., 26004., 26082., 26706.,
      26784., 26862., 26940., 27018., 27096., 27174., 27798., 27876., 27954.,
      28032., 28110., 28188., 28266.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      231306., 235716., 232044., 236472., 302640., 308520., 303600., 309504.,
      222486., 226896., 223188., 227616., 223890., 228336., 311553., 317790.,
      312552., 318816., 407256., 415572., 408552., 416904., 299079., 305316.,
      300024., 306288., 300969., 307260., 325539., 332154., 326538., 333180.,
      425400., 434220., 426696., 435552., 312309., 318924., 313254., 319896.,
      314199., 320868., 339525., 346518., 340524., 347544., 443544., 452868.,
      444840., 454200., 325539., 332532., 326484., 333504., 327429., 334476.,
      353511., 360882., 354510., 361908., 461688., 471516., 462984., 472848.,
      338769., 346140., 339714., 347112., 340659., 348084., 204342., 209004.,
      204936., 209616., 266352., 272568., 267120., 273360., 195018., 199680.,
      195576., 200256., 196134., 200832., 212658., 217572., 213252., 218184.,
      277104., 283656., 277872., 284448., 202830., 207744., 203388., 208320.,
      203946., 208896.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      40104., 42492., 40248., 42648., 40392., 42804., 40536., 42960., 40680.,
      43116., 40824., 43272., 40968., 43428., 42120., 44676., 42264., 44832.,
      42408., 44988., 42552., 45144., 42696., 45300., 42840., 45456., 42984.,
      45612., 44136., 46860., 44280., 47016., 44424., 47172., 44568., 47328.,
      44712., 47484., 44856., 47640., 45000., 47796., 46152., 49044., 46296.,
      49200., 46440., 49356., 46584., 49512., 46728., 49668., 46872., 49824.,
      47016., 49980., 48168., 51228., 48312., 51384., 48456., 51540., 48600.,
      51696., 48744., 51852., 48888., 52008., 49032., 52164., 50184., 53412.,
      50328., 53568., 50472., 53724., 50616., 53880., 50760., 54036., 50904.,
      54192., 51048., 54348., 52200., 55596., 52344., 55752., 52488., 55908.,
      52632., 56064., 52776., 56220., 52920., 56376., 53064., 56532.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      458202., 462612., 467022., 471432., 459660., 464088., 468516., 472944.,
      599400., 605280., 611160., 617040., 601296., 607200., 613104., 619008.,
      440562., 444972., 449382., 453792., 441948., 446376., 450804., 455232.,
      443334., 447780., 452226., 456672., 616869., 623106., 629343., 635580.,
      618840., 625104., 631368., 637632., 806196., 814512., 822828., 831144.,
      808752., 817104., 825456., 833808., 591921., 598158., 604395., 610632.,
      593784., 600048., 606312., 612576., 595647., 601938., 608229., 614520.,
      644463., 651078., 657693., 664308., 646434., 653076., 659718., 666360.,
      841980., 850800., 859620., 868440., 844536., 853392., 862248., 871104.,
      618003., 624618., 631233., 637848., 619866., 626508., 633150., 639792.,
      621729., 628398., 635067., 641736., 672057., 679050., 686043., 693036.,
      674028., 681048., 688068., 695088., 877764., 887088., 896412., 905736.,
      880320., 889680., 899040., 908400., 644085., 651078., 658071., 665064.,
      645948., 652968., 659988., 667008., 647811., 654858., 661905., 668952.,
      699651., 707022., 714393., 721764., 701622., 709020., 716418., 723816.,
      913548., 923376., 933204., 943032., 916104., 925968., 935832., 945696.,
      670167., 677538., 684909., 692280., 672030., 679428., 686826., 694224.,
      673893., 681318., 688743., 696168., 404022., 408684., 413346., 418008.,
      405192., 409872., 414552., 419232., 526488., 532704., 538920., 545136.,
      528000., 534240., 540480., 546720., 385374., 390036., 394698., 399360.,
      386472., 391152., 395832., 400512., 387570., 392268., 396966., 401664.,
      420402., 425316., 430230., 435144., 421572., 426504., 431436., 436368.,
      547656., 554208., 560760., 567312., 549168., 555744., 562320., 568896.,
      400746., 405660., 410574., 415488., 401844., 406776., 411708., 416640.,
      402942., 407892., 412842., 417792.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      77820.,  80208.,  82596.,  84984.,  78096.,  80496.,  82896.,  85296.,
      78372.,  80784.,  83196.,  85608.,  78648.,  81072.,  83496.,  85920.,
      78924.,  81360.,  83796.,  86232.,  79200.,  81648.,  84096.,  86544.,
      79476.,  81936.,  84396.,  86856.,  81684.,  84240.,  86796.,  89352.,
      81960.,  84528.,  87096.,  89664.,  82236.,  84816.,  87396.,  89976.,
      82512.,  85104.,  87696.,  90288.,  82788.,  85392.,  87996.,  90600.,
      83064.,  85680.,  88296.,  90912.,  83340.,  85968.,  88596.,  91224.,
      85548.,  88272.,  90996.,  93720.,  85824.,  88560.,  91296.,  94032.,
      86100.,  88848.,  91596.,  94344.,  86376.,  89136.,  91896.,  94656.,
      86652.,  89424.,  92196.,  94968.,  86928.,  89712.,  92496.,  95280.,
      87204.,  90000.,  92796.,  95592.,  89412.,  92304.,  95196.,  98088.,
      89688.,  92592.,  95496.,  98400.,  89964.,  92880.,  95796.,  98712.,
      90240.,  93168.,  96096.,  99024.,  90516.,  93456.,  96396.,  99336.,
      90792.,  93744.,  96696.,  99648.,  91068.,  94032.,  96996.,  99960.,
      93276.,  96336.,  99396.,  102456., 93552.,  96624.,  99696.,  102768.,
      93828.,  96912.,  99996.,  103080., 94104.,  97200.,  100296., 103392.,
      94380.,  97488.,  100596., 103704., 94656.,  97776.,  100896., 104016.,
      94932.,  98064.,  101196., 104328., 97140.,  100368., 103596., 106824.,
      97416.,  100656., 103896., 107136., 97692.,  100944., 104196., 107448.,
      97968.,  101232., 104496., 107760., 98244.,  101520., 104796., 108072.,
      98520.,  101808., 105096., 108384., 98796.,  102096., 105396., 108696.,
      101004., 104400., 107796., 111192., 101280., 104688., 108096., 111504.,
      101556., 104976., 108396., 111816., 101832., 105264., 108696., 112128.,
      102108., 105552., 108996., 112440., 102384., 105840., 109296., 112752.,
      102660., 106128., 109596., 113064.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      461874., 471432., 463350., 472944., 604320., 617040., 606240., 619008.,
      444270., 453792., 445674., 455232., 447078., 456672., 622107., 635580.,
      624105., 637632., 813216., 831144., 815808., 833808., 597213., 610632.,
      599103., 612576., 600993., 614520., 650079., 664308., 652077., 666360.,
      849504., 868440., 852096., 871104., 623673., 637848., 625563., 639792.,
      627453., 641736., 678051., 693036., 680049., 695088., 885792., 905736.,
      888384., 908400., 650133., 665064., 652023., 667008., 653913., 668952.,
      706023., 721764., 708021., 723816., 922080., 943032., 924672., 945696.,
      676593., 692280., 678483., 694224., 680373., 696168., 408090., 418008.,
      409278., 419232., 531936., 545136., 533472., 546720., 389478., 399360.,
      390594., 400512., 391710., 401664., 424722., 435144., 425910., 436368.,
      553440., 567312., 554976., 568896., 405102., 415488., 406218., 416640.,
      407334., 417792.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      80064.,  84984.,  80352.,  85296.,  80640.,  85608.,  80928.,  85920.,
      81216.,  86232.,  81504.,  86544.,  81792.,  86856.,  84096.,  89352.,
      84384.,  89664.,  84672.,  89976.,  84960.,  90288.,  85248.,  90600.,
      85536.,  90912.,  85824.,  91224.,  88128.,  93720.,  88416.,  94032.,
      88704.,  94344.,  88992.,  94656.,  89280.,  94968.,  89568.,  95280.,
      89856.,  95592.,  92160.,  98088.,  92448.,  98400.,  92736.,  98712.,
      93024.,  99024.,  93312.,  99336.,  93600.,  99648.,  93888.,  99960.,
      96192.,  102456., 96480.,  102768., 96768.,  103080., 97056.,  103392.,
      97344.,  103704., 97632.,  104016., 97920.,  104328., 100224., 106824.,
      100512., 107136., 100800., 107448., 101088., 107760., 101376., 108072.,
      101664., 108384., 101952., 108696., 104256., 111192., 104544., 111504.,
      104832., 111816., 105120., 112128., 105408., 112440., 105696., 112752.,
      105984., 113064.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      914946.,  923748.,  934044.,  942864.,  917862.,  926700.,  937032.,
      945888.,  1196904., 1208640., 1222320., 1234080., 1200696., 1212480.,
      1226208., 1238016., 879738.,  888540.,  898764.,  907584.,  882510.,
      891348.,  901608.,  910464.,  885282.,  894156.,  904452.,  913344.,
      1231767., 1244214., 1258686., 1271160., 1235709., 1248210., 1262736.,
      1275264., 1609836., 1626432., 1645656., 1662288., 1614948., 1631616.,
      1650912., 1667616., 1181979., 1194426., 1208790., 1221264., 1185705.,
      1198206., 1212624., 1225152., 1189431., 1201986., 1216458., 1229040.,
      1286955., 1300158., 1315386., 1328616., 1290897., 1304154., 1319436.,
      1332720., 1681404., 1699008., 1719240., 1736880., 1686516., 1704192.,
      1724496., 1742208., 1234143., 1247346., 1262466., 1275696., 1237869.,
      1251126., 1266300., 1279584., 1241595., 1254906., 1270134., 1283472.,
      1342143., 1356102., 1372086., 1386072., 1346085., 1360098., 1376136.,
      1390176., 1752972., 1771584., 1792824., 1811472., 1758084., 1776768.,
      1798080., 1816800., 1286307., 1300266., 1316142., 1330128., 1290033.,
      1304046., 1319976., 1334016., 1293759., 1307826., 1323810., 1337904.,
      1397331., 1412046., 1428786., 1443528., 1401273., 1416042., 1432836.,
      1447632., 1824540., 1844160., 1866408., 1886064., 1829652., 1849344.,
      1871664., 1891392., 1338471., 1353186., 1369818., 1384560., 1342197.,
      1356966., 1373652., 1388448., 1345923., 1360746., 1377486., 1392336.,
      806874.,  816180.,  826692.,  836016.,  809214.,  818556.,  829104.,
      838464.,  1051464., 1063872., 1077840., 1090272., 1054488., 1066944.,
      1080960., 1093440., 769650.,  778956.,  789396.,  798720.,  771846.,
      781188.,  791664.,  801024.,  774042.,  783420.,  793932.,  803328.,
      839634.,  849444.,  860460.,  870288.,  841974.,  851820.,  862872.,
      872736.,  1093800., 1106880., 1121520., 1134624., 1096824., 1109952.,
      1124640., 1137792., 800394.,  810204.,  821148.,  830976.,  802590.,
      812436.,  823416.,  833280.,  804786.,  814668.,  825684.,  835584.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      155364., 160128., 165192., 169968., 155916., 160704., 165792., 170592.,
      156468., 161280., 166392., 171216., 157020., 161856., 166992., 171840.,
      157572., 162432., 167592., 172464., 158124., 163008., 168192., 173088.,
      158676., 163584., 168792., 173712., 163092., 168192., 173592., 178704.,
      163644., 168768., 174192., 179328., 164196., 169344., 174792., 179952.,
      164748., 169920., 175392., 180576., 165300., 170496., 175992., 181200.,
      165852., 171072., 176592., 181824., 166404., 171648., 177192., 182448.,
      170820., 176256., 181992., 187440., 171372., 176832., 182592., 188064.,
      171924., 177408., 183192., 188688., 172476., 177984., 183792., 189312.,
      173028., 178560., 184392., 189936., 173580., 179136., 184992., 190560.,
      174132., 179712., 185592., 191184., 178548., 184320., 190392., 196176.,
      179100., 184896., 190992., 196800., 179652., 185472., 191592., 197424.,
      180204., 186048., 192192., 198048., 180756., 186624., 192792., 198672.,
      181308., 187200., 193392., 199296., 181860., 187776., 193992., 199920.,
      186276., 192384., 198792., 204912., 186828., 192960., 199392., 205536.,
      187380., 193536., 199992., 206160., 187932., 194112., 200592., 206784.,
      188484., 194688., 201192., 207408., 189036., 195264., 201792., 208032.,
      189588., 195840., 202392., 208656., 194004., 200448., 207192., 213648.,
      194556., 201024., 207792., 214272., 195108., 201600., 208392., 214896.,
      195660., 202176., 208992., 215520., 196212., 202752., 209592., 216144.,
      196764., 203328., 210192., 216768., 197316., 203904., 210792., 217392.,
      201732., 208512., 215592., 222384., 202284., 209088., 216192., 223008.,
      202836., 209664., 216792., 223632., 203388., 210240., 217392., 224256.,
      203940., 210816., 217992., 224880., 204492., 211392., 218592., 225504.,
      205044., 211968., 219192., 226128.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1821090., 1829892., 1838694., 1847496., 1859268., 1868088., 1876908.,
      1885728., 1826886., 1835724., 1844562., 1853400., 1865208., 1874064.,
      1882920., 1891776., 2382072., 2393808., 2405544., 2417280., 2432880.,
      2444640., 2456400., 2468160., 2389608., 2401392., 2413176., 2424960.,
      2440608., 2452416., 2464224., 2476032., 1750674., 1759476., 1768278.,
      1777080., 1788708., 1797528., 1806348., 1815168., 1756182., 1765020.,
      1773858., 1782696., 1794360., 1803216., 1812072., 1820928., 1761690.,
      1770564., 1779438., 1788312., 1800012., 1808904., 1817796., 1826688.,
      2451087., 2463534., 2475981., 2488428., 2504898., 2517372., 2529846.,
      2542320., 2458917., 2471418., 2483919., 2496420., 2512944., 2525472.,
      2538000., 2550528., 3203076., 3219672., 3236268., 3252864., 3274680.,
      3291312., 3307944., 3324576., 3213228., 3229896., 3246564., 3263232.,
      3285120., 3301824., 3318528., 3335232., 2351511., 2363958., 2376405.,
      2388852., 2405106., 2417580., 2430054., 2442528., 2358909., 2371410.,
      2383911., 2396412., 2412720., 2425248., 2437776., 2450304., 2366307.,
      2378862., 2391417., 2403972., 2420334., 2432916., 2445498., 2458080.,
      2560707., 2573910., 2587113., 2600316., 2617542., 2630772., 2644002.,
      2657232., 2568537., 2581794., 2595051., 2608308., 2625588., 2638872.,
      2652156., 2665440., 3345204., 3362808., 3380412., 3398016., 3420840.,
      3438480., 3456120., 3473760., 3355356., 3373032., 3390708., 3408384.,
      3431280., 3448992., 3466704., 3484416., 2455083., 2468286., 2481489.,
      2494692., 2511702., 2524932., 2538162., 2551392., 2462481., 2475738.,
      2488995., 2502252., 2519316., 2532600., 2545884., 2559168., 2469879.,
      2483190., 2496501., 2509812., 2526930., 2540268., 2553606., 2566944.,
      2670327., 2684286., 2698245., 2712204., 2730186., 2744172., 2758158.,
      2772144., 2678157., 2692170., 2706183., 2720196., 2738232., 2752272.,
      2766312., 2780352., 3487332., 3505944., 3524556., 3543168., 3567000.,
      3585648., 3604296., 3622944., 3497484., 3516168., 3534852., 3553536.,
      3577440., 3596160., 3614880., 3633600., 2558655., 2572614., 2586573.,
      2600532., 2618298., 2632284., 2646270., 2660256., 2566053., 2580066.,
      2594079., 2608092., 2625912., 2639952., 2653992., 2668032., 2573451.,
      2587518., 2601585., 2615652., 2633526., 2647620., 2661714., 2675808.,
      2779947., 2794662., 2809377., 2824092., 2842830., 2857572., 2872314.,
      2887056., 2787777., 2802546., 2817315., 2832084., 2850876., 2865672.,
      2880468., 2895264., 3629460., 3649080., 3668700., 3688320., 3713160.,
      3732816., 3752472., 3772128., 3639612., 3659304., 3678996., 3698688.,
      3723600., 3743328., 3763056., 3782784., 2662227., 2676942., 2691657.,
      2706372., 2724894., 2739636., 2754378., 2769120., 2669625., 2684394.,
      2699163., 2713932., 2732508., 2747304., 2762100., 2776896., 2677023.,
      2691846., 2706669., 2721492., 2740122., 2754972., 2769822., 2784672.,
      1604442., 1613748., 1623054., 1632360., 1644060., 1653384., 1662708.,
      1672032., 1609086., 1618428., 1627770., 1637112., 1648848., 1658208.,
      1667568., 1676928., 2090520., 2102928., 2115336., 2127744., 2143248.,
      2155680., 2168112., 2180544., 2096520., 2108976., 2121432., 2133888.,
      2149440., 2161920., 2174400., 2186880., 1529994., 1539300., 1548606.,
      1557912., 1569468., 1578792., 1588116., 1597440., 1534350., 1543692.,
      1553034., 1562376., 1573968., 1583328., 1592688., 1602048., 1538706.,
      1548084., 1557462., 1566840., 1578468., 1587864., 1597260., 1606656.,
      1669458., 1679268., 1689078., 1698888., 1711092., 1720920., 1730748.,
      1740576., 1674102., 1683948., 1693794., 1703640., 1715880., 1725744.,
      1735608., 1745472., 2174520., 2187600., 2200680., 2213760., 2229936.,
      2243040., 2256144., 2269248., 2180520., 2193648., 2206776., 2219904.,
      2236128., 2249280., 2262432., 2275584., 1590978., 1600788., 1610598.,
      1620408., 1632468., 1642296., 1652124., 1661952., 1595334., 1605180.,
      1615026., 1624872., 1636968., 1646832., 1656696., 1666560., 1599690.,
      1609572., 1619454., 1629336., 1641468., 1651368., 1661268., 1671168.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      305964., 310728., 315492., 320256., 325608., 330384., 335160., 339936.,
      307044., 311832., 316620., 321408., 326784., 331584., 336384., 341184.,
      308124., 312936., 317748., 322560., 327960., 332784., 337608., 342432.,
      309204., 314040., 318876., 323712., 329136., 333984., 338832., 343680.,
      310284., 315144., 320004., 324864., 330312., 335184., 340056., 344928.,
      311364., 316248., 321132., 326016., 331488., 336384., 341280., 346176.,
      312444., 317352., 322260., 327168., 332664., 337584., 342504., 347424.,
      321084., 326184., 331284., 336384., 342072., 347184., 352296., 357408.,
      322164., 327288., 332412., 337536., 343248., 348384., 353520., 358656.,
      323244., 328392., 333540., 338688., 344424., 349584., 354744., 359904.,
      324324., 329496., 334668., 339840., 345600., 350784., 355968., 361152.,
      325404., 330600., 335796., 340992., 346776., 351984., 357192., 362400.,
      326484., 331704., 336924., 342144., 347952., 353184., 358416., 363648.,
      327564., 332808., 338052., 343296., 349128., 354384., 359640., 364896.,
      336204., 341640., 347076., 352512., 358536., 363984., 369432., 374880.,
      337284., 342744., 348204., 353664., 359712., 365184., 370656., 376128.,
      338364., 343848., 349332., 354816., 360888., 366384., 371880., 377376.,
      339444., 344952., 350460., 355968., 362064., 367584., 373104., 378624.,
      340524., 346056., 351588., 357120., 363240., 368784., 374328., 379872.,
      341604., 347160., 352716., 358272., 364416., 369984., 375552., 381120.,
      342684., 348264., 353844., 359424., 365592., 371184., 376776., 382368.,
      351324., 357096., 362868., 368640., 375000., 380784., 386568., 392352.,
      352404., 358200., 363996., 369792., 376176., 381984., 387792., 393600.,
      353484., 359304., 365124., 370944., 377352., 383184., 389016., 394848.,
      354564., 360408., 366252., 372096., 378528., 384384., 390240., 396096.,
      355644., 361512., 367380., 373248., 379704., 385584., 391464., 397344.,
      356724., 362616., 368508., 374400., 380880., 386784., 392688., 398592.,
      357804., 363720., 369636., 375552., 382056., 387984., 393912., 399840.,
      366444., 372552., 378660., 384768., 391464., 397584., 403704., 409824.,
      367524., 373656., 379788., 385920., 392640., 398784., 404928., 411072.,
      368604., 374760., 380916., 387072., 393816., 399984., 406152., 412320.,
      369684., 375864., 382044., 388224., 394992., 401184., 407376., 413568.,
      370764., 376968., 383172., 389376., 396168., 402384., 408600., 414816.,
      371844., 378072., 384300., 390528., 397344., 403584., 409824., 416064.,
      372924., 379176., 385428., 391680., 398520., 404784., 411048., 417312.,
      381564., 388008., 394452., 400896., 407928., 414384., 420840., 427296.,
      382644., 389112., 395580., 402048., 409104., 415584., 422064., 428544.,
      383724., 390216., 396708., 403200., 410280., 416784., 423288., 429792.,
      384804., 391320., 397836., 404352., 411456., 417984., 424512., 431040.,
      385884., 392424., 398964., 405504., 412632., 419184., 425736., 432288.,
      386964., 393528., 400092., 406656., 413808., 420384., 426960., 433536.,
      388044., 394632., 401220., 407808., 414984., 421584., 428184., 434784.,
      396684., 403464., 410244., 417024., 424392., 431184., 437976., 444768.,
      397764., 404568., 411372., 418176., 425568., 432384., 439200., 446016.,
      398844., 405672., 412500., 419328., 426744., 433584., 440424., 447264.,
      399924., 406776., 413628., 420480., 427920., 434784., 441648., 448512.,
      401004., 407880., 414756., 421632., 429096., 435984., 442872., 449760.,
      402084., 408984., 415884., 422784., 430272., 437184., 444096., 451008.,
      403164., 410088., 417012., 423936., 431448., 438384., 445320., 452256.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1828434., 1847496., 1866594., 1885728., 1834266., 1853400., 1872570.,
      1891776., 2391912., 2417280., 2442696., 2468160., 2399496., 2424960.,
      2450472., 2476032., 1758090., 1777080., 1796106., 1815168., 1763634.,
      1782696., 1801794., 1820928., 1769178., 1788312., 1807482., 1826688.,
      2461563., 2488428., 2515347., 2542320., 2469447., 2496420., 2523447.,
      2550528., 3217116., 3252864., 3288684., 3324576., 3227340., 3263232.,
      3299196., 3335232., 2362095., 2388852., 2415663., 2442528., 2369547.,
      2396412., 2423331., 2450304., 2376999., 2403972., 2430999., 2458080.,
      2571939., 2600316., 2628747., 2657232., 2579823., 2608308., 2636847.,
      2665440., 3360252., 3398016., 3435852., 3473760., 3370476., 3408384.,
      3446364., 3484416., 2466423., 2494692., 2523015., 2551392., 2473875.,
      2502252., 2530683., 2559168., 2481327., 2509812., 2538351., 2566944.,
      2682315., 2712204., 2742147., 2772144., 2690199., 2720196., 2750247.,
      2780352., 3503388., 3543168., 3583020., 3622944., 3513612., 3553536.,
      3593532., 3633600., 2570751., 2600532., 2630367., 2660256., 2578203.,
      2608092., 2638035., 2668032., 2585655., 2615652., 2645703., 2675808.,
      2792691., 2824092., 2855547., 2887056., 2800575., 2832084., 2863647.,
      2895264., 3646524., 3688320., 3730188., 3772128., 3656748., 3698688.,
      3740700., 3782784., 2675079., 2706372., 2737719., 2769120., 2682531.,
      2713932., 2745387., 2776896., 2689983., 2721492., 2753055., 2784672.,
      1612578., 1632360., 1652178., 1672032., 1617258., 1637112., 1657002.,
      1676928., 2101416., 2127744., 2154120., 2180544., 2107464., 2133888.,
      2160360., 2186880., 1538202., 1557912., 1577658., 1597440., 1542594.,
      1562376., 1582194., 1602048., 1546986., 1566840., 1586730., 1606656.,
      1678098., 1698888., 1719714., 1740576., 1682778., 1703640., 1724538.,
      1745472., 2186088., 2213760., 2241480., 2269248., 2192136., 2219904.,
      2247720., 2275584., 1599690., 1620408., 1641162., 1661952., 1604082.,
      1624872., 1645698., 1666560., 1608474., 1629336., 1650234., 1671168.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      310452., 320256., 330084., 339936., 311556., 321408., 331284., 341184.,
      312660., 322560., 332484., 342432., 313764., 323712., 333684., 343680.,
      314868., 324864., 334884., 344928., 315972., 326016., 336084., 346176.,
      317076., 327168., 337284., 347424., 325908., 336384., 346884., 357408.,
      327012., 337536., 348084., 358656., 328116., 338688., 349284., 359904.,
      329220., 339840., 350484., 361152., 330324., 340992., 351684., 362400.,
      331428., 342144., 352884., 363648., 332532., 343296., 354084., 364896.,
      341364., 352512., 363684., 374880., 342468., 353664., 364884., 376128.,
      343572., 354816., 366084., 377376., 344676., 355968., 367284., 378624.,
      345780., 357120., 368484., 379872., 346884., 358272., 369684., 381120.,
      347988., 359424., 370884., 382368., 356820., 368640., 380484., 392352.,
      357924., 369792., 381684., 393600., 359028., 370944., 382884., 394848.,
      360132., 372096., 384084., 396096., 361236., 373248., 385284., 397344.,
      362340., 374400., 386484., 398592., 363444., 375552., 387684., 399840.,
      372276., 384768., 397284., 409824., 373380., 385920., 398484., 411072.,
      374484., 387072., 399684., 412320., 375588., 388224., 400884., 413568.,
      376692., 389376., 402084., 414816., 377796., 390528., 403284., 416064.,
      378900., 391680., 404484., 417312., 387732., 400896., 414084., 427296.,
      388836., 402048., 415284., 428544., 389940., 403200., 416484., 429792.,
      391044., 404352., 417684., 431040., 392148., 405504., 418884., 432288.,
      393252., 406656., 420084., 433536., 394356., 407808., 421284., 434784.,
      403188., 417024., 430884., 444768., 404292., 418176., 432084., 446016.,
      405396., 419328., 433284., 447264., 406500., 420480., 434484., 448512.,
      407604., 421632., 435684., 449760., 408708., 422784., 436884., 451008.,
      409812., 423936., 438084., 452256.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3639282., 3656868., 3677388., 3694992., 3715566., 3733188., 3753816.,
      3771456., 3650874., 3668532., 3689124., 3706800., 3727446., 3745140.,
      3765840., 3783552., 4760376., 4783824., 4811088., 4834560., 4861896.,
      4885392., 4912800., 4936320., 4775448., 4798992., 4826352., 4849920.,
      4877352., 4900944., 4928448., 4952064., 3498594., 3516180., 3536556.,
      3554160., 3574590., 3592212., 3612696., 3630336., 3509610., 3527268.,
      3547716., 3565392., 3585894., 3603588., 3624144., 3641856., 3520626.,
      3538356., 3558876., 3576624., 3597198., 3614964., 3635592., 3653376.,
      4898259., 4923126., 4951962., 4976856., 5005773., 5030694., 5059692.,
      5084640., 4913919., 4938894., 4967838., 4992840., 5021865., 5046894.,
      5076000., 5101056., 6401076., 6434232., 6472536., 6505728., 6544140.,
      6577368., 6615888., 6649152., 6421380., 6454680., 6493128., 6526464.,
      6565020., 6598392., 6637056., 6670464., 4699323., 4724190., 4752810.,
      4777704., 4806405., 4831326., 4860108., 4885056., 4714119., 4739094.,
      4767822., 4792824., 4821633., 4846662., 4875552., 4900608., 4728915.,
      4753998., 4782834., 4807944., 4836861., 4861998., 4890996., 4916160.,
      5117499., 5143878., 5174226., 5200632., 5231061., 5257494., 5288004.,
      5314464., 5133159., 5159646., 5190102., 5216616., 5247153., 5273694.,
      5304312., 5330880., 6685332., 6720504., 6760824., 6796032., 6836460.,
      6871704., 6912240., 6947520., 6705636., 6740952., 6781416., 6816768.,
      6857340., 6892728., 6933408., 6968832., 4906467., 4932846., 4962978.,
      4989384., 5019597., 5046030., 5076324., 5102784., 4921263., 4947750.,
      4977990., 5004504., 5034825., 5061366., 5091768., 5118336., 4936059.,
      4962654., 4993002., 5019624., 5050053., 5076702., 5107212., 5133888.,
      5336739., 5364630., 5396490., 5424408., 5456349., 5484294., 5516316.,
      5544288., 5352399., 5380398., 5412366., 5440392., 5472441., 5500494.,
      5532624., 5560704., 6969588., 7006776., 7049112., 7086336., 7128780.,
      7166040., 7208592., 7245888., 6989892., 7027224., 7069704., 7107072.,
      7149660., 7187064., 7229760., 7267200., 5113611., 5141502., 5173146.,
      5201064., 5232789., 5260734., 5292540., 5320512., 5128407., 5156406.,
      5188158., 5216184., 5248017., 5276070., 5307984., 5336064., 5143203.,
      5171310., 5203170., 5231304., 5263245., 5291406., 5323428., 5351616.,
      5555979., 5585382., 5618754., 5648184., 5681637., 5711094., 5744628.,
      5774112., 5571639., 5601150., 5634630., 5664168., 5697729., 5727294.,
      5760936., 5790528., 7253844., 7293048., 7337400., 7376640., 7421100.,
      7460376., 7504944., 7544256., 7274148., 7313496., 7357992., 7397376.,
      7441980., 7481400., 7526112., 7565568., 5320755., 5350158., 5383314.,
      5412744., 5445981., 5475438., 5508756., 5538240., 5335551., 5365062.,
      5398326., 5427864., 5461209., 5490774., 5524200., 5553792., 5350347.,
      5379966., 5413338., 5442984., 5476437., 5506110., 5539644., 5569344.,
      3206562., 3225156., 3246108., 3264720., 3285726., 3304356., 3325416.,
      3344064., 3215850., 3234516., 3255540., 3274224., 3295302., 3314004.,
      3335136., 3353856., 4178040., 4202832., 4230672., 4255488., 4283400.,
      4308240., 4336224., 4361088., 4190040., 4214928., 4242864., 4267776.,
      4295784., 4320720., 4348800., 4373760., 3057810., 3076404., 3097212.,
      3115824., 3136686., 3155316., 3176232., 3194880., 3066522., 3085188.,
      3106068., 3124752., 3145686., 3164388., 3185376., 3204096., 3075234.,
      3093972., 3114924., 3133680., 3154686., 3173460., 3194520., 3213312.,
      3336594., 3356196., 3378156., 3397776., 3419790., 3439428., 3461496.,
      3481152., 3345882., 3365556., 3387588., 3407280., 3429366., 3449076.,
      3471216., 3490944., 4346040., 4372176., 4401360., 4427520., 4456776.,
      4482960., 4512288., 4538496., 4358040., 4384272., 4413552., 4439808.,
      4469160., 4495440., 4524864., 4551168., 3179778., 3199380., 3221196.,
      3240816., 3262686., 3282324., 3304248., 3323904., 3188490., 3208164.,
      3230052., 3249744., 3271686., 3291396., 3313392., 3333120., 3197202.,
      3216948., 3238908., 3258672., 3280686., 3300468., 3322536., 3342336.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      611388., 620904., 630984., 640512., 650628., 660168., 670320., 679872.,
      613548., 623112., 633240., 642816., 652980., 662568., 672768., 682368.,
      615708., 625320., 635496., 645120., 655332., 664968., 675216., 684864.,
      617868., 627528., 637752., 647424., 657684., 667368., 677664., 687360.,
      620028., 629736., 640008., 649728., 660036., 669768., 680112., 689856.,
      622188., 631944., 642264., 652032., 662388., 672168., 682560., 692352.,
      624348., 634152., 644520., 654336., 664740., 674568., 685008., 694848.,
      641628., 651816., 662568., 672768., 683556., 693768., 704592., 714816.,
      643788., 654024., 664824., 675072., 685908., 696168., 707040., 717312.,
      645948., 656232., 667080., 677376., 688260., 698568., 709488., 719808.,
      648108., 658440., 669336., 679680., 690612., 700968., 711936., 722304.,
      650268., 660648., 671592., 681984., 692964., 703368., 714384., 724800.,
      652428., 662856., 673848., 684288., 695316., 705768., 716832., 727296.,
      654588., 665064., 676104., 686592., 697668., 708168., 719280., 729792.,
      671868., 682728., 694152., 705024., 716484., 727368., 738864., 749760.,
      674028., 684936., 696408., 707328., 718836., 729768., 741312., 752256.,
      676188., 687144., 698664., 709632., 721188., 732168., 743760., 754752.,
      678348., 689352., 700920., 711936., 723540., 734568., 746208., 757248.,
      680508., 691560., 703176., 714240., 725892., 736968., 748656., 759744.,
      682668., 693768., 705432., 716544., 728244., 739368., 751104., 762240.,
      684828., 695976., 707688., 718848., 730596., 741768., 753552., 764736.,
      702108., 713640., 725736., 737280., 749412., 760968., 773136., 784704.,
      704268., 715848., 727992., 739584., 751764., 763368., 775584., 787200.,
      706428., 718056., 730248., 741888., 754116., 765768., 778032., 789696.,
      708588., 720264., 732504., 744192., 756468., 768168., 780480., 792192.,
      710748., 722472., 734760., 746496., 758820., 770568., 782928., 794688.,
      712908., 724680., 737016., 748800., 761172., 772968., 785376., 797184.,
      715068., 726888., 739272., 751104., 763524., 775368., 787824., 799680.,
      732348., 744552., 757320., 769536., 782340., 794568., 807408., 819648.,
      734508., 746760., 759576., 771840., 784692., 796968., 809856., 822144.,
      736668., 748968., 761832., 774144., 787044., 799368., 812304., 824640.,
      738828., 751176., 764088., 776448., 789396., 801768., 814752., 827136.,
      740988., 753384., 766344., 778752., 791748., 804168., 817200., 829632.,
      743148., 755592., 768600., 781056., 794100., 806568., 819648., 832128.,
      745308., 757800., 770856., 783360., 796452., 808968., 822096., 834624.,
      762588., 775464., 788904., 801792., 815268., 828168., 841680., 854592.,
      764748., 777672., 791160., 804096., 817620., 830568., 844128., 857088.,
      766908., 779880., 793416., 806400., 819972., 832968., 846576., 859584.,
      769068., 782088., 795672., 808704., 822324., 835368., 849024., 862080.,
      771228., 784296., 797928., 811008., 824676., 837768., 851472., 864576.,
      773388., 786504., 800184., 813312., 827028., 840168., 853920., 867072.,
      775548., 788712., 802440., 815616., 829380., 842568., 856368., 869568.,
      792828., 806376., 820488., 834048., 848196., 861768., 875952., 889536.,
      794988., 808584., 822744., 836352., 850548., 864168., 878400., 892032.,
      797148., 810792., 825000., 838656., 852900., 866568., 880848., 894528.,
      799308., 813000., 827256., 840960., 855252., 868968., 883296., 897024.,
      801468., 815208., 829512., 843264., 857604., 871368., 885744., 899520.,
      803628., 817416., 831768., 845568., 859956., 873768., 888192., 902016.,
      805788., 819624., 834024., 847872., 862308., 876168., 890640., 904512.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x12x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7260978.,  7278564.,  7296150.,  7313736.,  7337172.,  7354776.,
      7372380.,  7389984.,  7413510.,  7431132.,  7448754.,  7466376.,
      7489992.,  7507632.,  7525272.,  7542912.,  7284090.,  7301748.,
      7319406.,  7337064.,  7360572.,  7378248.,  7395924.,  7413600.,
      7437198.,  7454892.,  7472586.,  7490280.,  7513968.,  7531680.,
      7549392.,  7567104.,  9497304.,  9520752.,  9544200.,  9567648.,
      9598704.,  9622176.,  9645648.,  9669120.,  9700296.,  9723792.,
      9747288.,  9770784.,  9802080.,  9825600.,  9849120.,  9872640.,
      9527352.,  9550896.,  9574440.,  9597984.,  9629136.,  9652704.,
      9676272.,  9699840.,  9731112.,  9754704.,  9778296.,  9801888.,
      9833280.,  9856896.,  9880512.,  9904128.,  6979602.,  6997188.,
      7014774.,  7032360.,  7055508.,  7073112.,  7090716.,  7108320.,
      7131558.,  7149180.,  7166802.,  7184424.,  7207752.,  7225392.,
      7243032.,  7260672.,  7001562.,  7019220.,  7036878.,  7054536.,
      7077756.,  7095432.,  7113108.,  7130784.,  7154094.,  7171788.,
      7189482.,  7207176.,  7230576.,  7248288.,  7266000.,  7283712.,
      7023522.,  7041252.,  7058982.,  7076712.,  7100004.,  7117752.,
      7135500.,  7153248.,  7176630.,  7194396.,  7212162.,  7229928.,
      7253400.,  7271184.,  7288968.,  7306752.,  9771651.,  9796518.,
      9821385.,  9846252.,  9879030.,  9903924.,  9928818.,  9953712.,
      9986625.,  10011546., 10036467., 10061388., 10094436., 10119384.,
      10144332., 10169280., 9802863.,  9827838.,  9852813.,  9877788.,
      9910674.,  9935676.,  9960678.,  9985680.,  10018701., 10043730.,
      10068759., 10093788., 10126944., 10152000., 10177056., 10202112.,
      12768996., 12802152., 12835308., 12868464., 12911880., 12945072.,
      12978264., 13011456., 13055052., 13088280., 13121508., 13154736.,
      13198512., 13231776., 13265040., 13298304., 12809460., 12842760.,
      12876060., 12909360., 12952920., 12986256., 13019592., 13052928.,
      13096668., 13130040., 13163412., 13196784., 13240704., 13274112.,
      13307520., 13340928., 9373779.,  9398646.,  9423513.,  9448380.,
      9480726.,  9505620.,  9530514.,  9555408.,  9587889.,  9612810.,
      9637731.,  9662652.,  9695268.,  9720216.,  9745164.,  9770112.,
      9403263.,  9428238.,  9453213.,  9478188.,  9510642.,  9535644.,
      9560646.,  9585648.,  9618237.,  9643266.,  9668295.,  9693324.,
      9726048.,  9751104.,  9776160.,  9801216.,  9432747.,  9457830.,
      9482913.,  9507996.,  9540558.,  9565668.,  9590778.,  9615888.,
      9648585.,  9673722.,  9698859.,  9723996.,  9756828.,  9781992.,
      9807156.,  9832320.,  10208619., 10234998., 10261377., 10287756.,
      10322046., 10348452., 10374858., 10401264., 10435689., 10462122.,
      10488555., 10514988., 10549548., 10576008., 10602468., 10628928.,
      10239831., 10266318., 10292805., 10319292., 10353690., 10380204.,
      10406718., 10433232., 10467765., 10494306., 10520847., 10547388.,
      10582056., 10608624., 10635192., 10661760., 13335492., 13370664.,
      13405836., 13441008., 13486440., 13521648., 13556856., 13592064.,
      13637676., 13672920., 13708164., 13743408., 13789200., 13824480.,
      13859760., 13895040., 13375956., 13411272., 13446588., 13481904.,
      13527480., 13562832., 13598184., 13633536., 13679292., 13714680.,
      13750068., 13785456., 13831392., 13866816., 13902240., 13937664.,
      9786555.,  9812934.,  9839313.,  9865692.,  9899550.,  9925956.,
      9952362.,  9978768.,  10012761., 10039194., 10065627., 10092060.,
      10126188., 10152648., 10179108., 10205568., 9816039.,  9842526.,
      9869013.,  9895500.,  9929466.,  9955980.,  9982494.,  10009008.,
      10043109., 10069650., 10096191., 10122732., 10156968., 10183536.,
      10210104., 10236672., 9845523.,  9872118.,  9898713.,  9925308.,
      9959382.,  9986004.,  10012626., 10039248., 10073457., 10100106.,
      10126755., 10153404., 10187748., 10214424., 10241100., 10267776.,
      10645587., 10673478., 10701369., 10729260., 10765062., 10792980.,
      10820898., 10848816., 10884753., 10912698., 10940643., 10968588.,
      11004660., 11032632., 11060604., 11088576., 10676799., 10704798.,
      10732797., 10760796., 10796706., 10824732., 10852758., 10880784.,
      10916829., 10944882., 10972935., 11000988., 11037168., 11065248.,
      11093328., 11121408., 13901988., 13939176., 13976364., 14013552.,
      14061000., 14098224., 14135448., 14172672., 14220300., 14257560.,
      14294820., 14332080., 14379888., 14417184., 14454480., 14491776.,
      13942452., 13979784., 14017116., 14054448., 14102040., 14139408.,
      14176776., 14214144., 14261916., 14299320., 14336724., 14374128.,
      14422080., 14459520., 14496960., 14534400., 10199331., 10227222.,
      10255113., 10283004., 10318374., 10346292., 10374210., 10402128.,
      10437633., 10465578., 10493523., 10521468., 10557108., 10585080.,
      10613052., 10641024., 10228815., 10256814., 10284813., 10312812.,
      10348290., 10376316., 10404342., 10432368., 10467981., 10496034.,
      10524087., 10552140., 10587888., 10615968., 10644048., 10672128.,
      10258299., 10286406., 10314513., 10342620., 10378206., 10406340.,
      10434474., 10462608., 10498329., 10526490., 10554651., 10582812.,
      10618668., 10646856., 10675044., 10703232., 11082555., 11111958.,
      11141361., 11170764., 11208078., 11237508., 11266938., 11296368.,
      11333817., 11363274., 11392731., 11422188., 11459772., 11489256.,
      11518740., 11548224., 11113767., 11143278., 11172789., 11202300.,
      11239722., 11269260., 11298798., 11328336., 11365893., 11395458.,
      11425023., 11454588., 11492280., 11521872., 11551464., 11581056.,
      14468484., 14507688., 14546892., 14586096., 14635560., 14674800.,
      14714040., 14753280., 14802924., 14842200., 14881476., 14920752.,
      14970576., 15009888., 15049200., 15088512., 14508948., 14548296.,
      14587644., 14626992., 14676600., 14715984., 14755368., 14794752.,
      14844540., 14883960., 14923380., 14962800., 15012768., 15052224.,
      15091680., 15131136., 10612107., 10641510., 10670913., 10700316.,
      10737198., 10766628., 10796058., 10825488., 10862505., 10891962.,
      10921419., 10950876., 10988028., 11017512., 11046996., 11076480.,
      10641591., 10671102., 10700613., 10730124., 10767114., 10796652.,
      10826190., 10855728., 10892853., 10922418., 10951983., 10981548.,
      11018808., 11048400., 11077992., 11107584., 10671075., 10700694.,
      10730313., 10759932., 10797030., 10826676., 10856322., 10885968.,
      10923201., 10952874., 10982547., 11012220., 11049588., 11079288.,
      11108988., 11138688., 6394530.,  6413124.,  6431718.,  6450312.,
      6473604.,  6492216.,  6510828.,  6529440.,  6552822.,  6571452.,
      6590082.,  6608712.,  6632184.,  6650832.,  6669480.,  6688128.,
      6413034.,  6431700.,  6450366.,  6469032.,  6492396.,  6511080.,
      6529764.,  6548448.,  6571902.,  6590604.,  6609306.,  6628008.,
      6651552.,  6670272.,  6688992.,  6707712.,  8331288.,  8356080.,
      8380872.,  8405664.,  8436528.,  8461344.,  8486160.,  8510976.,
      8541960.,  8566800.,  8591640.,  8616480.,  8647584.,  8672448.,
      8697312.,  8722176.,  8355192.,  8380080.,  8404968.,  8429856.,
      8460816.,  8485728.,  8510640.,  8535552.,  8566632.,  8591568.,
      8616504.,  8641440.,  8672640.,  8697600.,  8722560.,  8747520.,
      6097026.,  6115620.,  6134214.,  6152808.,  6175812.,  6194424.,
      6213036.,  6231648.,  6254742.,  6273372.,  6292002.,  6310632.,
      6333816.,  6352464.,  6371112.,  6389760.,  6114378.,  6133044.,
      6151710.,  6170376.,  6193452.,  6212136.,  6230820.,  6249504.,
      6272670.,  6291372.,  6310074.,  6328776.,  6352032.,  6370752.,
      6389472.,  6408192.,  6131730.,  6150468.,  6169206.,  6187944.,
      6211092.,  6229848.,  6248604.,  6267360.,  6290598.,  6309372.,
      6328146.,  6346920.,  6370248.,  6389040.,  6407832.,  6426624.,
      6653586.,  6673188.,  6692790.,  6712392.,  6736692.,  6756312.,
      6775932.,  6795552.,  6819942.,  6839580.,  6859218.,  6878856.,
      6903336.,  6922992.,  6942648.,  6962304.,  6672090.,  6691764.,
      6711438.,  6731112.,  6755484.,  6775176.,  6794868.,  6814560.,
      6839022.,  6858732.,  6878442.,  6898152.,  6922704.,  6942432.,
      6962160.,  6981888.,  8665944.,  8692080.,  8718216.,  8744352.,
      8776560.,  8802720.,  8828880.,  8855040.,  8887368.,  8913552.,
      8939736.,  8965920.,  8998368.,  9024576.,  9050784.,  9076992.,
      8689848.,  8716080.,  8742312.,  8768544.,  8800848.,  8827104.,
      8853360.,  8879616.,  8912040.,  8938320.,  8964600.,  8990880.,
      9023424.,  9049728.,  9076032.,  9102336.,  6339954.,  6359556.,
      6379158.,  6398760.,  6422772.,  6442392.,  6462012.,  6481632.,
      6505734.,  6525372.,  6545010.,  6564648.,  6588840.,  6608496.,
      6628152.,  6647808.,  6357306.,  6376980.,  6396654.,  6416328.,
      6440412.,  6460104.,  6479796.,  6499488.,  6523662.,  6543372.,
      6563082.,  6582792.,  6607056.,  6626784.,  6646512.,  6666240.,
      6374658.,  6394404.,  6414150.,  6433896.,  6458052.,  6477816.,
      6497580.,  6517344.,  6541590.,  6561372.,  6581154.,  6600936.,
      6625272.,  6645072.,  6664872.,  6684672.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x12x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1213260., 1222776., 1232292., 1241808., 1252440., 1261968., 1271496.,
      1281024., 1291716., 1301256., 1310796., 1320336., 1331088., 1340640.,
      1350192., 1359744., 1217532., 1227096., 1236660., 1246224., 1256904.,
      1266480., 1276056., 1285632., 1296372., 1305960., 1315548., 1325136.,
      1335936., 1345536., 1355136., 1364736., 1221804., 1231416., 1241028.,
      1250640., 1261368., 1270992., 1280616., 1290240., 1301028., 1310664.,
      1320300., 1329936., 1340784., 1350432., 1360080., 1369728., 1226076.,
      1235736., 1245396., 1255056., 1265832., 1275504., 1285176., 1294848.,
      1305684., 1315368., 1325052., 1334736., 1345632., 1355328., 1365024.,
      1374720., 1230348., 1240056., 1249764., 1259472., 1270296., 1280016.,
      1289736., 1299456., 1310340., 1320072., 1329804., 1339536., 1350480.,
      1360224., 1369968., 1379712., 1234620., 1244376., 1254132., 1263888.,
      1274760., 1284528., 1294296., 1304064., 1314996., 1324776., 1334556.,
      1344336., 1355328., 1365120., 1374912., 1384704., 1238892., 1248696.,
      1258500., 1268304., 1279224., 1289040., 1298856., 1308672., 1319652.,
      1329480., 1339308., 1349136., 1360176., 1370016., 1379856., 1389696.,
      1273068., 1283256., 1293444., 1303632., 1314936., 1325136., 1335336.,
      1345536., 1356900., 1367112., 1377324., 1387536., 1398960., 1409184.,
      1419408., 1429632., 1277340., 1287576., 1297812., 1308048., 1319400.,
      1329648., 1339896., 1350144., 1361556., 1371816., 1382076., 1392336.,
      1403808., 1414080., 1424352., 1434624., 1281612., 1291896., 1302180.,
      1312464., 1323864., 1334160., 1344456., 1354752., 1366212., 1376520.,
      1386828., 1397136., 1408656., 1418976., 1429296., 1439616., 1285884.,
      1296216., 1306548., 1316880., 1328328., 1338672., 1349016., 1359360.,
      1370868., 1381224., 1391580., 1401936., 1413504., 1423872., 1434240.,
      1444608., 1290156., 1300536., 1310916., 1321296., 1332792., 1343184.,
      1353576., 1363968., 1375524., 1385928., 1396332., 1406736., 1418352.,
      1428768., 1439184., 1449600., 1294428., 1304856., 1315284., 1325712.,
      1337256., 1347696., 1358136., 1368576., 1380180., 1390632., 1401084.,
      1411536., 1423200., 1433664., 1444128., 1454592., 1298700., 1309176.,
      1319652., 1330128., 1341720., 1352208., 1362696., 1373184., 1384836.,
      1395336., 1405836., 1416336., 1428048., 1438560., 1449072., 1459584.,
      1332876., 1343736., 1354596., 1365456., 1377432., 1388304., 1399176.,
      1410048., 1422084., 1432968., 1443852., 1454736., 1466832., 1477728.,
      1488624., 1499520., 1337148., 1348056., 1358964., 1369872., 1381896.,
      1392816., 1403736., 1414656., 1426740., 1437672., 1448604., 1459536.,
      1471680., 1482624., 1493568., 1504512., 1341420., 1352376., 1363332.,
      1374288., 1386360., 1397328., 1408296., 1419264., 1431396., 1442376.,
      1453356., 1464336., 1476528., 1487520., 1498512., 1509504., 1345692.,
      1356696., 1367700., 1378704., 1390824., 1401840., 1412856., 1423872.,
      1436052., 1447080., 1458108., 1469136., 1481376., 1492416., 1503456.,
      1514496., 1349964., 1361016., 1372068., 1383120., 1395288., 1406352.,
      1417416., 1428480., 1440708., 1451784., 1462860., 1473936., 1486224.,
      1497312., 1508400., 1519488., 1354236., 1365336., 1376436., 1387536.,
      1399752., 1410864., 1421976., 1433088., 1445364., 1456488., 1467612.,
      1478736., 1491072., 1502208., 1513344., 1524480., 1358508., 1369656.,
      1380804., 1391952., 1404216., 1415376., 1426536., 1437696., 1450020.,
      1461192., 1472364., 1483536., 1495920., 1507104., 1518288., 1529472.,
      1392684., 1404216., 1415748., 1427280., 1439928., 1451472., 1463016.,
      1474560., 1487268., 1498824., 1510380., 1521936., 1534704., 1546272.,
      1557840., 1569408., 1396956., 1408536., 1420116., 1431696., 1444392.,
      1455984., 1467576., 1479168., 1491924., 1503528., 1515132., 1526736.,
      1539552., 1551168., 1562784., 1574400., 1401228., 1412856., 1424484.,
      1436112., 1448856., 1460496., 1472136., 1483776., 1496580., 1508232.,
      1519884., 1531536., 1544400., 1556064., 1567728., 1579392., 1405500.,
      1417176., 1428852., 1440528., 1453320., 1465008., 1476696., 1488384.,
      1501236., 1512936., 1524636., 1536336., 1549248., 1560960., 1572672.,
      1584384., 1409772., 1421496., 1433220., 1444944., 1457784., 1469520.,
      1481256., 1492992., 1505892., 1517640., 1529388., 1541136., 1554096.,
      1565856., 1577616., 1589376., 1414044., 1425816., 1437588., 1449360.,
      1462248., 1474032., 1485816., 1497600., 1510548., 1522344., 1534140.,
      1545936., 1558944., 1570752., 1582560., 1594368., 1418316., 1430136.,
      1441956., 1453776., 1466712., 1478544., 1490376., 1502208., 1515204.,
      1527048., 1538892., 1550736., 1563792., 1575648., 1587504., 1599360.,
      1452492., 1464696., 1476900., 1489104., 1502424., 1514640., 1526856.,
      1539072., 1552452., 1564680., 1576908., 1589136., 1602576., 1614816.,
      1627056., 1639296., 1456764., 1469016., 1481268., 1493520., 1506888.,
      1519152., 1531416., 1543680., 1557108., 1569384., 1581660., 1593936.,
      1607424., 1619712., 1632000., 1644288., 1461036., 1473336., 1485636.,
      1497936., 1511352., 1523664., 1535976., 1548288., 1561764., 1574088.,
      1586412., 1598736., 1612272., 1624608., 1636944., 1649280., 1465308.,
      1477656., 1490004., 1502352., 1515816., 1528176., 1540536., 1552896.,
      1566420., 1578792., 1591164., 1603536., 1617120., 1629504., 1641888.,
      1654272., 1469580., 1481976., 1494372., 1506768., 1520280., 1532688.,
      1545096., 1557504., 1571076., 1583496., 1595916., 1608336., 1621968.,
      1634400., 1646832., 1659264., 1473852., 1486296., 1498740., 1511184.,
      1524744., 1537200., 1549656., 1562112., 1575732., 1588200., 1600668.,
      1613136., 1626816., 1639296., 1651776., 1664256., 1478124., 1490616.,
      1503108., 1515600., 1529208., 1541712., 1554216., 1566720., 1580388.,
      1592904., 1605420., 1617936., 1631664., 1644192., 1656720., 1669248.,
      1512300., 1525176., 1538052., 1550928., 1564920., 1577808., 1590696.,
      1603584., 1617636., 1630536., 1643436., 1656336., 1670448., 1683360.,
      1696272., 1709184., 1516572., 1529496., 1542420., 1555344., 1569384.,
      1582320., 1595256., 1608192., 1622292., 1635240., 1648188., 1661136.,
      1675296., 1688256., 1701216., 1714176., 1520844., 1533816., 1546788.,
      1559760., 1573848., 1586832., 1599816., 1612800., 1626948., 1639944.,
      1652940., 1665936., 1680144., 1693152., 1706160., 1719168., 1525116.,
      1538136., 1551156., 1564176., 1578312., 1591344., 1604376., 1617408.,
      1631604., 1644648., 1657692., 1670736., 1684992., 1698048., 1711104.,
      1724160., 1529388., 1542456., 1555524., 1568592., 1582776., 1595856.,
      1608936., 1622016., 1636260., 1649352., 1662444., 1675536., 1689840.,
      1702944., 1716048., 1729152., 1533660., 1546776., 1559892., 1573008.,
      1587240., 1600368., 1613496., 1626624., 1640916., 1654056., 1667196.,
      1680336., 1694688., 1707840., 1720992., 1734144., 1537932., 1551096.,
      1564260., 1577424., 1591704., 1604880., 1618056., 1631232., 1645572.,
      1658760., 1671948., 1685136., 1699536., 1712736., 1725936., 1739136.,
      1572108., 1585656., 1599204., 1612752., 1627416., 1640976., 1654536.,
      1668096., 1682820., 1696392., 1709964., 1723536., 1738320., 1751904.,
      1765488., 1779072., 1576380., 1589976., 1603572., 1617168., 1631880.,
      1645488., 1659096., 1672704., 1687476., 1701096., 1714716., 1728336.,
      1743168., 1756800., 1770432., 1784064., 1580652., 1594296., 1607940.,
      1621584., 1636344., 1650000., 1663656., 1677312., 1692132., 1705800.,
      1719468., 1733136., 1748016., 1761696., 1775376., 1789056., 1584924.,
      1598616., 1612308., 1626000., 1640808., 1654512., 1668216., 1681920.,
      1696788., 1710504., 1724220., 1737936., 1752864., 1766592., 1780320.,
      1794048., 1589196., 1602936., 1616676., 1630416., 1645272., 1659024.,
      1672776., 1686528., 1701444., 1715208., 1728972., 1742736., 1757712.,
      1771488., 1785264., 1799040., 1593468., 1607256., 1621044., 1634832.,
      1649736., 1663536., 1677336., 1691136., 1706100., 1719912., 1733724.,
      1747536., 1762560., 1776384., 1790208., 1804032., 1597740., 1611576.,
      1625412., 1639248., 1654200., 1668048., 1681896., 1695744., 1710756.,
      1724616., 1738476., 1752336., 1767408., 1781280., 1795152., 1809024.};
  const std::array<int, 4> in_shape = {{3, 12, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      106803., 107172., 157212., 157752., 158292., 103104., 103455.,
      110862., 111231., 163152., 163692., 164232., 106965., 107316.,
      136152., 136608., 200238., 200904., 201570., 131184., 131616.,
      141168., 141624., 207564., 208230., 208896., 135936., 136368.,
      94653.,  94968.,  138987., 139446., 139905., 90900.,  91197.,
      98118.,  98433.,  144036., 144495., 144954., 94167.,  94464.,
      101583., 101898., 149085., 149544., 150003., 97434.,  97731.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x11x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      19166., 19244., 19322., 19400., 19478., 19556., 19634., 20024., 20102.,
      20180., 20258., 20336., 20414., 20492., 20882., 20960., 21038., 21116.,
      21194., 21272., 21350., 21740., 21818., 21896., 21974., 22052., 22130.,
      22208., 22598., 22676., 22754., 22832., 22910., 22988., 23066., 23456.,
      23534., 23612., 23690., 23768., 23846., 23924., 24314., 24392., 24470.,
      24548., 24626., 24704., 24782.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      209556., 213606., 210276., 214344., 308349., 314424., 309402., 315504.,
      310455., 316584., 202140., 206208., 202824., 206910., 217476., 221724.,
      218196., 222462., 319932., 326304., 320985., 327384., 322038., 328464.,
      209664., 213930., 210348., 214632., 266904., 272304., 267792., 273216.,
      392376., 400476., 393672., 401808., 394968., 403140., 256944., 262368.,
      257784., 263232., 276672., 282336., 277560., 283248., 406632., 415128.,
      407928., 416460., 409224., 417792., 266184., 271872., 267024., 272736.,
      185256., 189306., 185868., 189936., 271899., 277974., 272790., 278892.,
      273681., 279810., 177732., 181800., 178308., 182394., 191988., 196236.,
      192600., 196866., 281700., 288072., 282591., 288990., 283482., 289908.,
      184068., 188334., 184644., 188928., 198720., 203166., 199332., 203796.,
      291501., 298170., 292392., 299088., 293283., 300006., 190404., 194868.,
      190980., 195462.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x11x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      36184., 38332., 36328., 38488., 36472., 38644., 36616., 38800., 36760.,
      38956., 36904., 39112., 37048., 39268., 37768., 40048., 37912., 40204.,
      38056., 40360., 38200., 40516., 38344., 40672., 38488., 40828., 38632.,
      40984., 39352., 41764., 39496., 41920., 39640., 42076., 39784., 42232.,
      39928., 42388., 40072., 42544., 40216., 42700., 40936., 43480., 41080.,
      43636., 41224., 43792., 41368., 43948., 41512., 44104., 41656., 44260.,
      41800., 44416., 42520., 45196., 42664., 45352., 42808., 45508., 42952.,
      45664., 43096., 45820., 43240., 45976., 43384., 46132., 44104., 46912.,
      44248., 47068., 44392., 47224., 44536., 47380., 44680., 47536., 44824.,
      47692., 44968., 47848., 45688., 48628., 45832., 48784., 45976., 48940.,
      46120., 49096., 46264., 49252., 46408., 49408., 46552., 49564.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      415062., 419112., 423162., 427212., 416484., 420552., 424620., 428688.,
      610623., 616698., 622773., 628848., 612702., 618804., 624906., 631008.,
      614781., 620910., 627039., 633168., 400212., 404280., 408348., 412416.,
      401562., 405648., 409734., 413820., 430704., 434952., 439200., 443448.,
      432126., 436392., 440658., 444924., 633492., 639864., 646236., 652608.,
      635571., 641970., 648369., 654768., 637650., 644076., 650502., 656928.,
      415062., 419328., 423594., 427860., 416412., 420696., 424980., 429264.,
      528408., 533808., 539208., 544608., 530160., 535584., 541008., 546432.,
      776652., 784752., 792852., 800952., 779208., 787344., 795480., 803616.,
      781764., 789936., 798108., 806280., 508464., 513888., 519312., 524736.,
      510120., 515568., 521016., 526464., 547680., 553344., 559008., 564672.,
      549432., 555120., 560808., 566496., 804768., 813264., 821760., 830256.,
      807324., 815856., 824388., 832920., 809880., 818448., 827016., 835584.,
      526680., 532368., 538056., 543744., 528336., 534048., 539760., 545472.,
      366462., 370512., 374562., 378612., 367668., 371736., 375804., 379872.,
      537723., 543798., 549873., 555948., 539478., 545580., 551682., 557784.,
      541233., 547362., 553491., 559620., 351396., 355464., 359532., 363600.,
      352530., 356616., 360702., 364788., 379728., 383976., 388224., 392472.,
      380934., 385200., 389466., 393732., 557028., 563400., 569772., 576144.,
      558783., 565182., 571581., 577980., 560538., 566964., 573390., 579816.,
      363870., 368136., 372402., 376668., 365004., 369288., 373572., 377856.,
      392994., 397440., 401886., 406332., 394200., 398664., 403128., 407592.,
      576333., 583002., 589671., 596340., 578088., 584784., 591480., 598176.,
      579843., 586566., 593289., 600012., 376344., 380808., 385272., 389736.,
      377478., 381960., 386442., 390924.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x11x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      70220., 72368., 74516., 76664., 70496., 72656., 74816., 76976., 70772.,
      72944., 75116., 77288., 71048., 73232., 75416., 77600., 71324., 73520.,
      75716., 77912., 71600., 73808., 76016., 78224., 71876., 74096., 76316.,
      78536., 73256., 75536., 77816., 80096., 73532., 75824., 78116., 80408.,
      73808., 76112., 78416., 80720., 74084., 76400., 78716., 81032., 74360.,
      76688., 79016., 81344., 74636., 76976., 79316., 81656., 74912., 77264.,
      79616., 81968., 76292., 78704., 81116., 83528., 76568., 78992., 81416.,
      83840., 76844., 79280., 81716., 84152., 77120., 79568., 82016., 84464.,
      77396., 79856., 82316., 84776., 77672., 80144., 82616., 85088., 77948.,
      80432., 82916., 85400., 79328., 81872., 84416., 86960., 79604., 82160.,
      84716., 87272., 79880., 82448., 85016., 87584., 80156., 82736., 85316.,
      87896., 80432., 83024., 85616., 88208., 80708., 83312., 85916., 88520.,
      80984., 83600., 86216., 88832., 82364., 85040., 87716., 90392., 82640.,
      85328., 88016., 90704., 82916., 85616., 88316., 91016., 83192., 85904.,
      88616., 91328., 83468., 86192., 88916., 91640., 83744., 86480., 89216.,
      91952., 84020., 86768., 89516., 92264., 85400., 88208., 91016., 93824.,
      85676., 88496., 91316., 94136., 85952., 88784., 91616., 94448., 86228.,
      89072., 91916., 94760., 86504., 89360., 92216., 95072., 86780., 89648.,
      92516., 95384., 87056., 89936., 92816., 95696., 88436., 91376., 94316.,
      97256., 88712., 91664., 94616., 97568., 88988., 91952., 94916., 97880.,
      89264., 92240., 95216., 98192., 89540., 92528., 95516., 98504., 89816.,
      92816., 95816., 98816., 90092., 93104., 96116., 99128.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      418392., 427212., 419832., 428688., 615645., 628848., 617751., 631008.,
      619857., 633168., 403596., 412416., 404964., 413820., 434232., 443448.,
      435672., 444924., 638811., 652608., 640917., 654768., 643023., 656928.,
      418644., 427860., 420012., 429264., 532920., 544608., 534696., 546432.,
      783456., 800952., 786048., 803616., 788640., 806280., 513048., 524736.,
      514728., 526464., 552456., 564672., 554232., 566496., 811968., 830256.,
      814560., 832920., 817152., 835584., 531528., 543744., 533208., 545472.,
      369900., 378612., 371124., 379872., 542907., 555948., 544689., 557784.,
      546471., 559620., 354888., 363600., 356040., 364788., 383364., 392472.,
      384588., 393732., 562509., 576144., 564291., 577980., 566073., 579816.,
      367560., 376668., 368712., 377856., 396828., 406332., 398052., 407592.,
      582111., 596340., 583893., 598176., 585675., 600012., 380232., 389736.,
      381384., 390924.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x11x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      72224., 76664., 72512., 76976., 72800., 77288., 73088., 77600., 73376.,
      77912., 73664., 78224., 73952., 78536., 75392., 80096., 75680., 80408.,
      75968., 80720., 76256., 81032., 76544., 81344., 76832., 81656., 77120.,
      81968., 78560., 83528., 78848., 83840., 79136., 84152., 79424., 84464.,
      79712., 84776., 80000., 85088., 80288., 85400., 81728., 86960., 82016.,
      87272., 82304., 87584., 82592., 87896., 82880., 88208., 83168., 88520.,
      83456., 88832., 84896., 90392., 85184., 90704., 85472., 91016., 85760.,
      91328., 86048., 91640., 86336., 91952., 86624., 92264., 88064., 93824.,
      88352., 94136., 88640., 94448., 88928., 94760., 89216., 95072., 89504.,
      95384., 89792., 95696., 91232., 97256., 91520., 97568., 91808., 97880.,
      92096., 98192., 92384., 98504., 92672., 98816., 92960., 99128.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      828702.,  836784.,  846324.,  854424.,  831546.,  839664.,  849240.,
      857376.,  1219167., 1231290., 1245546., 1257696., 1223325., 1235502.,
      1249812., 1262016., 1227483., 1239714., 1254078., 1266336., 799074.,
      807192.,  816696.,  824832.,  801774.,  809928.,  819468.,  827640.,
      859986.,  868464.,  878400.,  886896.,  862830.,  871344.,  881316.,
      889848.,  1264905., 1277622., 1292472., 1305216., 1269063., 1281834.,
      1296738., 1309536., 1273221., 1286046., 1301004., 1313856., 828774.,
      837288.,  847188.,  855720.,  831474.,  840024.,  849960.,  858528.,
      1055064., 1065840., 1078416., 1089216., 1058568., 1069392., 1082016.,
      1092864., 1550748., 1566912., 1585704., 1601904., 1555860., 1572096.,
      1590960., 1607232., 1560972., 1577280., 1596216., 1612560., 1015272.,
      1026096., 1038624., 1049472., 1018584., 1029456., 1042032., 1052928.,
      1093608., 1104912., 1118016., 1129344., 1097112., 1108464., 1121616.,
      1132992., 1606980., 1623936., 1643520., 1660512., 1612092., 1629120.,
      1648776., 1665840., 1617204., 1634304., 1654032., 1671168., 1051704.,
      1063056., 1076112., 1087488., 1055016., 1066416., 1079520., 1090944.,
      731718.,  739800.,  749124.,  757224.,  734130.,  742248.,  751608.,
      759744.,  1073691., 1085814., 1099746., 1111896., 1077201., 1089378.,
      1103364., 1115568., 1080711., 1092942., 1106982., 1119240., 701658.,
      709776.,  719064.,  727200.,  703926.,  712080.,  721404.,  729576.,
      758250.,  766728.,  776448.,  784944.,  760662.,  769176.,  778932.,
      787464.,  1112301., 1125018., 1139544., 1152288., 1115811., 1128582.,
      1143162., 1155960., 1119321., 1132146., 1146780., 1159632., 726606.,
      735120.,  744804.,  753336.,  728874.,  737424.,  747144.,  755712.,
      784782.,  793656.,  803772.,  812664.,  787194.,  796104.,  806256.,
      815184.,  1150911., 1164222., 1179342., 1192680., 1154421., 1167786.,
      1182960., 1196352., 1157931., 1171350., 1186578., 1200024., 751554.,
      760464.,  770544.,  779472.,  753822.,  762768.,  772884.,  781848.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x11x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      140164., 144448., 149032., 153328., 140716., 145024., 149632., 153952.,
      141268., 145600., 150232., 154576., 141820., 146176., 150832., 155200.,
      142372., 146752., 151432., 155824., 142924., 147328., 152032., 156448.,
      143476., 147904., 152632., 157072., 146236., 150784., 155632., 160192.,
      146788., 151360., 156232., 160816., 147340., 151936., 156832., 161440.,
      147892., 152512., 157432., 162064., 148444., 153088., 158032., 162688.,
      148996., 153664., 158632., 163312., 149548., 154240., 159232., 163936.,
      152308., 157120., 162232., 167056., 152860., 157696., 162832., 167680.,
      153412., 158272., 163432., 168304., 153964., 158848., 164032., 168928.,
      154516., 159424., 164632., 169552., 155068., 160000., 165232., 170176.,
      155620., 160576., 165832., 170800., 158380., 163456., 168832., 173920.,
      158932., 164032., 169432., 174544., 159484., 164608., 170032., 175168.,
      160036., 165184., 170632., 175792., 160588., 165760., 171232., 176416.,
      161140., 166336., 171832., 177040., 161692., 166912., 172432., 177664.,
      164452., 169792., 175432., 180784., 165004., 170368., 176032., 181408.,
      165556., 170944., 176632., 182032., 166108., 171520., 177232., 182656.,
      166660., 172096., 177832., 183280., 167212., 172672., 178432., 183904.,
      167764., 173248., 179032., 184528., 170524., 176128., 182032., 187648.,
      171076., 176704., 182632., 188272., 171628., 177280., 183232., 188896.,
      172180., 177856., 183832., 189520., 172732., 178432., 184432., 190144.,
      173284., 179008., 185032., 190768., 173836., 179584., 185632., 191392.,
      176596., 182464., 188632., 194512., 177148., 183040., 189232., 195136.,
      177700., 183616., 189832., 195760., 178252., 184192., 190432., 196384.,
      178804., 184768., 191032., 197008., 179356., 185344., 191632., 197632.,
      179908., 185920., 192232., 198256.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1649322., 1657404., 1665486., 1673568., 1684548., 1692648., 1700748.,
      1708848., 1654974., 1663092., 1671210., 1679328., 1690344., 1698480.,
      1706616., 1714752., 2426211., 2438334., 2450457., 2462580., 2478942.,
      2491092., 2503242., 2515392., 2434473., 2446650., 2458827., 2471004.,
      2487420., 2499624., 2511828., 2524032., 2442735., 2454966., 2467197.,
      2479428., 2495898., 2508156., 2520414., 2532672., 1590030., 1598148.,
      1606266., 1614384., 1625256., 1633392., 1641528., 1649664., 1595394.,
      1603548., 1611702., 1619856., 1630764., 1638936., 1647108., 1655280.,
      1711494., 1719972., 1728450., 1736928., 1748304., 1756800., 1765296.,
      1773792., 1717146., 1725660., 1734174., 1742688., 1754100., 1762632.,
      1771164., 1779696., 2517093., 2529810., 2542527., 2555244., 2572200.,
      2584944., 2597688., 2610432., 2525355., 2538126., 2550897., 2563668.,
      2580678., 2593476., 2606274., 2619072., 2533617., 2546442., 2559267.,
      2572092., 2589156., 2602008., 2614860., 2627712., 1649034., 1657548.,
      1666062., 1674576., 1685844., 1694376., 1702908., 1711440., 1654398.,
      1662948., 1671498., 1680048., 1691352., 1699920., 1708488., 1717056.,
      2099352., 2110128., 2120904., 2131680., 2146032., 2156832., 2167632.,
      2178432., 2106312., 2117136., 2127960., 2138784., 2153184., 2164032.,
      2174880., 2185728., 3085332., 3101496., 3117660., 3133824., 3155208.,
      3171408., 3187608., 3203808., 3095484., 3111720., 3127956., 3144192.,
      3165648., 3181920., 3198192., 3214464., 3105636., 3121944., 3138252.,
      3154560., 3176088., 3192432., 3208776., 3225120., 2019720., 2030544.,
      2041368., 2052192., 2066400., 2077248., 2088096., 2098944., 2026296.,
      2037168., 2048040., 2058912., 2073168., 2084064., 2094960., 2105856.,
      2175912., 2187216., 2198520., 2209824., 2224704., 2236032., 2247360.,
      2258688., 2182872., 2194224., 2205576., 2216928., 2231856., 2243232.,
      2254608., 2265984., 3197004., 3213960., 3230916., 3247872., 3270048.,
      3287040., 3304032., 3321024., 3207156., 3224184., 3241212., 3258240.,
      3280488., 3297552., 3314616., 3331680., 3217308., 3234408., 3251508.,
      3268608., 3290928., 3308064., 3325200., 3342336., 2092056., 2103408.,
      2114760., 2126112., 2140848., 2152224., 2163600., 2174976., 2098632.,
      2110032., 2121432., 2132832., 2147616., 2159040., 2170464., 2181888.,
      1455354., 1463436., 1471518., 1479600., 1490148., 1498248., 1506348.,
      1514448., 1460142., 1468260., 1476378., 1484496., 1495080., 1503216.,
      1511352., 1519488., 2135259., 2147382., 2159505., 2171628., 2187342.,
      2199492., 2211642., 2223792., 2142225., 2154402., 2166579., 2178756.,
      2194524., 2206728., 2218932., 2231136., 2149191., 2161422., 2173653.,
      2185884., 2201706., 2213964., 2226222., 2238480., 1395198., 1403316.,
      1411434., 1419552., 1429992., 1438128., 1446264., 1454400., 1399698.,
      1407852., 1416006., 1424160., 1434636., 1442808., 1450980., 1459152.,
      1508022., 1516500., 1524978., 1533456., 1544400., 1552896., 1561392.,
      1569888., 1512810., 1521324., 1529838., 1538352., 1549332., 1557864.,
      1566396., 1574928., 2211885., 2224602., 2237319., 2250036., 2266344.,
      2279088., 2291832., 2304576., 2218851., 2231622., 2244393., 2257164.,
      2273526., 2286324., 2299122., 2311920., 2225817., 2238642., 2251467.,
      2264292., 2280708., 2293560., 2306412., 2319264., 1444698., 1453212.,
      1461726., 1470240., 1481076., 1489608., 1498140., 1506672., 1449198.,
      1457748., 1466298., 1474848., 1485720., 1494288., 1502856., 1511424.,
      1560690., 1569564., 1578438., 1587312., 1598652., 1607544., 1616436.,
      1625328., 1565478., 1574388., 1583298., 1592208., 1603584., 1612512.,
      1621440., 1630368., 2288511., 2301822., 2315133., 2328444., 2345346.,
      2358684., 2372022., 2385360., 2295477., 2308842., 2322207., 2335572.,
      2352528., 2365920., 2379312., 2392704., 2302443., 2315862., 2329281.,
      2342700., 2359710., 2373156., 2386602., 2400048., 1494198., 1503108.,
      1512018., 1520928., 1532160., 1541088., 1550016., 1558944., 1498698.,
      1507644., 1516590., 1525536., 1536804., 1545768., 1554732., 1563696.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x11x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      276044., 280328., 284612., 288896., 293768., 298064., 302360., 306656.,
      277124., 281432., 285740., 290048., 294944., 299264., 303584., 307904.,
      278204., 282536., 286868., 291200., 296120., 300464., 304808., 309152.,
      279284., 283640., 287996., 292352., 297296., 301664., 306032., 310400.,
      280364., 284744., 289124., 293504., 298472., 302864., 307256., 311648.,
      281444., 285848., 290252., 294656., 299648., 304064., 308480., 312896.,
      282524., 286952., 291380., 295808., 300824., 305264., 309704., 314144.,
      287924., 292472., 297020., 301568., 306704., 311264., 315824., 320384.,
      289004., 293576., 298148., 302720., 307880., 312464., 317048., 321632.,
      290084., 294680., 299276., 303872., 309056., 313664., 318272., 322880.,
      291164., 295784., 300404., 305024., 310232., 314864., 319496., 324128.,
      292244., 296888., 301532., 306176., 311408., 316064., 320720., 325376.,
      293324., 297992., 302660., 307328., 312584., 317264., 321944., 326624.,
      294404., 299096., 303788., 308480., 313760., 318464., 323168., 327872.,
      299804., 304616., 309428., 314240., 319640., 324464., 329288., 334112.,
      300884., 305720., 310556., 315392., 320816., 325664., 330512., 335360.,
      301964., 306824., 311684., 316544., 321992., 326864., 331736., 336608.,
      303044., 307928., 312812., 317696., 323168., 328064., 332960., 337856.,
      304124., 309032., 313940., 318848., 324344., 329264., 334184., 339104.,
      305204., 310136., 315068., 320000., 325520., 330464., 335408., 340352.,
      306284., 311240., 316196., 321152., 326696., 331664., 336632., 341600.,
      311684., 316760., 321836., 326912., 332576., 337664., 342752., 347840.,
      312764., 317864., 322964., 328064., 333752., 338864., 343976., 349088.,
      313844., 318968., 324092., 329216., 334928., 340064., 345200., 350336.,
      314924., 320072., 325220., 330368., 336104., 341264., 346424., 351584.,
      316004., 321176., 326348., 331520., 337280., 342464., 347648., 352832.,
      317084., 322280., 327476., 332672., 338456., 343664., 348872., 354080.,
      318164., 323384., 328604., 333824., 339632., 344864., 350096., 355328.,
      323564., 328904., 334244., 339584., 345512., 350864., 356216., 361568.,
      324644., 330008., 335372., 340736., 346688., 352064., 357440., 362816.,
      325724., 331112., 336500., 341888., 347864., 353264., 358664., 364064.,
      326804., 332216., 337628., 343040., 349040., 354464., 359888., 365312.,
      327884., 333320., 338756., 344192., 350216., 355664., 361112., 366560.,
      328964., 334424., 339884., 345344., 351392., 356864., 362336., 367808.,
      330044., 335528., 341012., 346496., 352568., 358064., 363560., 369056.,
      335444., 341048., 346652., 352256., 358448., 364064., 369680., 375296.,
      336524., 342152., 347780., 353408., 359624., 365264., 370904., 376544.,
      337604., 343256., 348908., 354560., 360800., 366464., 372128., 377792.,
      338684., 344360., 350036., 355712., 361976., 367664., 373352., 379040.,
      339764., 345464., 351164., 356864., 363152., 368864., 374576., 380288.,
      340844., 346568., 352292., 358016., 364328., 370064., 375800., 381536.,
      341924., 347672., 353420., 359168., 365504., 371264., 377024., 382784.,
      347324., 353192., 359060., 364928., 371384., 377264., 383144., 389024.,
      348404., 354296., 360188., 366080., 372560., 378464., 384368., 390272.,
      349484., 355400., 361316., 367232., 373736., 379664., 385592., 391520.,
      350564., 356504., 362444., 368384., 374912., 380864., 386816., 392768.,
      351644., 357608., 363572., 369536., 376088., 382064., 388040., 394016.,
      352724., 358712., 364700., 370688., 377264., 383264., 389264., 395264.,
      353804., 359816., 365828., 371840., 378440., 384464., 390488., 396512.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1655982., 1673568., 1691190., 1708848., 1661670., 1679328., 1697022.,
      1714752., 2436255., 2462580., 2488959., 2515392., 2444571., 2471004.,
      2497491., 2524032., 2452887., 2479428., 2506023., 2532672., 1596798.,
      1614384., 1632006., 1649664., 1602198., 1619856., 1637550., 1655280.,
      1718550., 1736928., 1755342., 1773792., 1724238., 1742688., 1761174.,
      1779696., 2527731., 2555244., 2582811., 2610432., 2536047., 2563668.,
      2591343., 2619072., 2544363., 2572092., 2599875., 2627712., 1656198.,
      1674576., 1692990., 1711440., 1661598., 1680048., 1698534., 1717056.,
      2108376., 2131680., 2155032., 2178432., 2115384., 2138784., 2162232.,
      2185728., 3098940., 3133824., 3168780., 3203808., 3109164., 3144192.,
      3179292., 3214464., 3119388., 3154560., 3189804., 3225120., 2028888.,
      2052192., 2075544., 2098944., 2035512., 2058912., 2082360., 2105856.,
      2185464., 2209824., 2234232., 2258688., 2192472., 2216928., 2241432.,
      2265984., 3211404., 3247872., 3284412., 3321024., 3221628., 3258240.,
      3294924., 3331680., 3231852., 3268608., 3305436., 3342336., 2101752.,
      2126112., 2150520., 2174976., 2108376., 2132832., 2157336., 2181888.,
      1462230., 1479600., 1497006., 1514448., 1467054., 1484496., 1501974.,
      1519488., 2145627., 2171628., 2197683., 2223792., 2152647., 2178756.,
      2204919., 2231136., 2159667., 2185884., 2212155., 2238480., 1402182.,
      1419552., 1436958., 1454400., 1406718., 1424160., 1441638., 1459152.,
      1515294., 1533456., 1551654., 1569888., 1520118., 1538352., 1556622.,
      1574928., 2222847., 2250036., 2277279., 2304576., 2229867., 2257164.,
      2284515., 2311920., 2236887., 2264292., 2291751., 2319264., 1452078.,
      1470240., 1488438., 1506672., 1456614., 1474848., 1493118., 1511424.,
      1568358., 1587312., 1606302., 1625328., 1573182., 1592208., 1611270.,
      1630368., 2300067., 2328444., 2356875., 2385360., 2307087., 2335572.,
      2364111., 2392704., 2314107., 2342700., 2371347., 2400048., 1501974.,
      1520928., 1539918., 1558944., 1506510., 1525536., 1544598., 1563696.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x11x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      280052., 288896., 297764., 306656., 281156., 290048., 298964., 307904.,
      282260., 291200., 300164., 309152., 283364., 292352., 301364., 310400.,
      284468., 293504., 302564., 311648., 285572., 294656., 303764., 312896.,
      286676., 295808., 304964., 314144., 292196., 301568., 310964., 320384.,
      293300., 302720., 312164., 321632., 294404., 303872., 313364., 322880.,
      295508., 305024., 314564., 324128., 296612., 306176., 315764., 325376.,
      297716., 307328., 316964., 326624., 298820., 308480., 318164., 327872.,
      304340., 314240., 324164., 334112., 305444., 315392., 325364., 335360.,
      306548., 316544., 326564., 336608., 307652., 317696., 327764., 337856.,
      308756., 318848., 328964., 339104., 309860., 320000., 330164., 340352.,
      310964., 321152., 331364., 341600., 316484., 326912., 337364., 347840.,
      317588., 328064., 338564., 349088., 318692., 329216., 339764., 350336.,
      319796., 330368., 340964., 351584., 320900., 331520., 342164., 352832.,
      322004., 332672., 343364., 354080., 323108., 333824., 344564., 355328.,
      328628., 339584., 350564., 361568., 329732., 340736., 351764., 362816.,
      330836., 341888., 352964., 364064., 331940., 343040., 354164., 365312.,
      333044., 344192., 355364., 366560., 334148., 345344., 356564., 367808.,
      335252., 346496., 357764., 369056., 340772., 352256., 363764., 375296.,
      341876., 353408., 364964., 376544., 342980., 354560., 366164., 377792.,
      344084., 355712., 367364., 379040., 345188., 356864., 368564., 380288.,
      346292., 358016., 369764., 381536., 347396., 359168., 370964., 382784.,
      352916., 364928., 376964., 389024., 354020., 366080., 378164., 390272.,
      355124., 367232., 379364., 391520., 356228., 368384., 380564., 392768.,
      357332., 369536., 381764., 394016., 358436., 370688., 382964., 395264.,
      359540., 371840., 384164., 396512.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3295818., 3311964., 3330972., 3347136., 3366198., 3382380., 3401496.,
      3417696., 3307122., 3323340., 3342420., 3358656., 3377790., 3394044.,
      3413232., 3429504., 4848291., 4872510., 4900914., 4925160., 4953645.,
      4977918., 5006484., 5030784., 4864815., 4889142., 4917654., 4942008.,
      4970601., 4994982., 5023656., 5048064., 4881339., 4905774., 4934394.,
      4958856., 4987557., 5012046., 5040828., 5065344., 3177378., 3193596.,
      3212532., 3228768., 3247758., 3264012., 3283056., 3299328., 3188106.,
      3204396., 3223404., 3239712., 3258774., 3275100., 3294216., 3310560.,
      3420162., 3437100., 3456900., 3473856., 3493710., 3510684., 3530592.,
      3547584., 3431466., 3448476., 3468348., 3485376., 3505302., 3522348.,
      3542328., 3559392., 5030055., 5055462., 5085054., 5110488., 5140161.,
      5165622., 5195376., 5220864., 5046579., 5072094., 5101794., 5127336.,
      5157117., 5182686., 5212548., 5238144., 5063103., 5088726., 5118534.,
      5144184., 5174073., 5199750., 5229720., 5255424., 3295386., 3312396.,
      3332124., 3349152., 3368934., 3385980., 3405816., 3422880., 3306114.,
      3323196., 3342996., 3360096., 3379950., 3397068., 3416976., 3434112.,
      4195224., 4216752., 4241808., 4263360., 4288488., 4310064., 4335264.,
      4356864., 4209144., 4230768., 4255920., 4277568., 4302792., 4324464.,
      4349760., 4371456., 6165588., 6197880., 6235320., 6267648., 6305196.,
      6337560., 6375216., 6407616., 6185892., 6218328., 6255912., 6288384.,
      6326076., 6358584., 6396384., 6428928., 6206196., 6238776., 6276504.,
      6309120., 6346956., 6379608., 6417552., 6450240., 4036152., 4057776.,
      4082736., 4104384., 4129416., 4151088., 4176192., 4197888., 4049304.,
      4071024., 4096080., 4117824., 4142952., 4164720., 4189920., 4211712.,
      4348344., 4370928., 4397040., 4419648., 4445832., 4468464., 4494720.,
      4517376., 4362264., 4384944., 4411152., 4433856., 4460136., 4482864.,
      4509216., 4531968., 6388932., 6422808., 6461832., 6495744., 6534876.,
      6568824., 6608064., 6642048., 6409236., 6443256., 6482424., 6516480.,
      6555756., 6589848., 6629232., 6663360., 6429540., 6463704., 6503016.,
      6537216., 6576636., 6610872., 6650400., 6684672., 4180824., 4203504.,
      4229520., 4252224., 4278312., 4301040., 4327200., 4349952., 4193976.,
      4216752., 4242864., 4265664., 4291848., 4314672., 4340928., 4363776.,
      2908314., 2924460., 2943036., 2959200., 2977830., 2994012., 3012696.,
      3028896., 2917890., 2934108., 2952756., 2968992., 2987694., 3003948.,
      3022704., 3038976., 4267035., 4291254., 4319010., 4343256., 4371093.,
      4395366., 4423284., 4447584., 4280967., 4305294., 4333158., 4357512.,
      4385457., 4409838., 4437864., 4462272., 4294899., 4319334., 4347306.,
      4371768., 4399821., 4424310., 4452444., 4476960., 2788146., 2804364.,
      2822868., 2839104., 2857662., 2873916., 2892528., 2908800., 2797146.,
      2813436., 2832012., 2848320., 2866950., 2883276., 2901960., 2918304.,
      3013650., 3030588., 3049956., 3066912., 3086334., 3103308., 3122784.,
      3139776., 3023226., 3040236., 3059676., 3076704., 3096198., 3113244.,
      3132792., 3149856., 4420287., 4445694., 4474638., 4500072., 4529097.,
      4554558., 4583664., 4609152., 4434219., 4459734., 4488786., 4514328.,
      4543461., 4569030., 4598244., 4623840., 4448151., 4473774., 4502934.,
      4528584., 4557825., 4583502., 4612824., 4638528., 2887146., 2904156.,
      2923452., 2940480., 2959830., 2976876., 2996280., 3013344., 2896146.,
      2913228., 2932596., 2949696., 2969118., 2986236., 3005712., 3022848.,
      3118986., 3136716., 3156876., 3174624., 3194838., 3212604., 3232872.,
      3250656., 3128562., 3146364., 3166596., 3184416., 3204702., 3222540.,
      3242880., 3260736., 4573539., 4600134., 4630266., 4656888., 4687101.,
      4713750., 4744044., 4770720., 4587471., 4614174., 4644414., 4671144.,
      4701465., 4728222., 4758624., 4785408., 4601403., 4628214., 4658562.,
      4685400., 4715829., 4742694., 4773204., 4800096., 2986146., 3003948.,
      3024036., 3041856., 3061998., 3079836., 3100032., 3117888., 2995146.,
      3013020., 3033180., 3051072., 3071286., 3089196., 3109464., 3127392.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x11x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      551548., 560104., 569224., 577792., 586948., 595528., 604720., 613312.,
      553708., 562312., 571480., 580096., 589300., 597928., 607168., 615808.,
      555868., 564520., 573736., 582400., 591652., 600328., 609616., 618304.,
      558028., 566728., 575992., 584704., 594004., 602728., 612064., 620800.,
      560188., 568936., 578248., 587008., 596356., 605128., 614512., 623296.,
      562348., 571144., 580504., 589312., 598708., 607528., 616960., 625792.,
      564508., 573352., 582760., 591616., 601060., 609928., 619408., 628288.,
      575308., 584392., 594040., 603136., 612820., 621928., 631648., 640768.,
      577468., 586600., 596296., 605440., 615172., 624328., 634096., 643264.,
      579628., 588808., 598552., 607744., 617524., 626728., 636544., 645760.,
      581788., 591016., 600808., 610048., 619876., 629128., 638992., 648256.,
      583948., 593224., 603064., 612352., 622228., 631528., 641440., 650752.,
      586108., 595432., 605320., 614656., 624580., 633928., 643888., 653248.,
      588268., 597640., 607576., 616960., 626932., 636328., 646336., 655744.,
      599068., 608680., 618856., 628480., 638692., 648328., 658576., 668224.,
      601228., 610888., 621112., 630784., 641044., 650728., 661024., 670720.,
      603388., 613096., 623368., 633088., 643396., 653128., 663472., 673216.,
      605548., 615304., 625624., 635392., 645748., 655528., 665920., 675712.,
      607708., 617512., 627880., 637696., 648100., 657928., 668368., 678208.,
      609868., 619720., 630136., 640000., 650452., 660328., 670816., 680704.,
      612028., 621928., 632392., 642304., 652804., 662728., 673264., 683200.,
      622828., 632968., 643672., 653824., 664564., 674728., 685504., 695680.,
      624988., 635176., 645928., 656128., 666916., 677128., 687952., 698176.,
      627148., 637384., 648184., 658432., 669268., 679528., 690400., 700672.,
      629308., 639592., 650440., 660736., 671620., 681928., 692848., 703168.,
      631468., 641800., 652696., 663040., 673972., 684328., 695296., 705664.,
      633628., 644008., 654952., 665344., 676324., 686728., 697744., 708160.,
      635788., 646216., 657208., 667648., 678676., 689128., 700192., 710656.,
      646588., 657256., 668488., 679168., 690436., 701128., 712432., 723136.,
      648748., 659464., 670744., 681472., 692788., 703528., 714880., 725632.,
      650908., 661672., 673000., 683776., 695140., 705928., 717328., 728128.,
      653068., 663880., 675256., 686080., 697492., 708328., 719776., 730624.,
      655228., 666088., 677512., 688384., 699844., 710728., 722224., 733120.,
      657388., 668296., 679768., 690688., 702196., 713128., 724672., 735616.,
      659548., 670504., 682024., 692992., 704548., 715528., 727120., 738112.,
      670348., 681544., 693304., 704512., 716308., 727528., 739360., 750592.,
      672508., 683752., 695560., 706816., 718660., 729928., 741808., 753088.,
      674668., 685960., 697816., 709120., 721012., 732328., 744256., 755584.,
      676828., 688168., 700072., 711424., 723364., 734728., 746704., 758080.,
      678988., 690376., 702328., 713728., 725716., 737128., 749152., 760576.,
      681148., 692584., 704584., 716032., 728068., 739528., 751600., 763072.,
      683308., 694792., 706840., 718336., 730420., 741928., 754048., 765568.,
      694108., 705832., 718120., 729856., 742180., 753928., 766288., 778048.,
      696268., 708040., 720376., 732160., 744532., 756328., 768736., 780544.,
      698428., 710248., 722632., 734464., 746884., 758728., 771184., 783040.,
      700588., 712456., 724888., 736768., 749236., 761128., 773632., 785536.,
      702748., 714664., 727144., 739072., 751588., 763528., 776080., 788032.,
      704908., 716872., 729400., 741376., 753940., 765928., 778528., 790528.,
      707068., 719080., 731656., 743680., 756292., 768328., 780976., 793024.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6575490.,  6591636.,  6607782.,  6623928.,  6645780.,  6661944.,
      6678108.,  6694272.,  6716214.,  6732396.,  6748578.,  6764760.,
      6786792.,  6802992.,  6819192.,  6835392.,  6598026.,  6614244.,
      6630462.,  6646680.,  6668604.,  6684840.,  6701076.,  6717312.,
      6739326.,  6755580.,  6771834.,  6788088.,  6810192.,  6826464.,
      6842736.,  6859008.,  9672363.,  9696582.,  9720801.,  9745020.,
      9777582.,  9801828.,  9826074.,  9850320.,  9883017.,  9907290.,
      9931563.,  9955836.,  9988668.,  10012968., 10037268., 10061568.,
      9705303.,  9729630.,  9753957.,  9778284.,  9810954.,  9835308.,
      9859662.,  9884016.,  9916821.,  9941202.,  9965583.,  9989964.,
      10022904., 10047312., 10071720., 10096128., 9738243.,  9762678.,
      9787113.,  9811548.,  9844326.,  9868788.,  9893250.,  9917712.,
      9950625.,  9975114.,  9999603.,  10024092., 10057140., 10081656.,
      10106172., 10130688., 6338538.,  6354756.,  6370974.,  6387192.,
      6408828.,  6425064.,  6441300.,  6457536.,  6479262.,  6495516.,
      6511770.,  6528024.,  6549840.,  6566112.,  6582384.,  6598656.,
      6359922.,  6376212.,  6392502.,  6408792.,  6430500.,  6446808.,
      6463116.,  6479424.,  6501222.,  6517548.,  6533874.,  6550200.,
      6572088.,  6588432.,  6604776.,  6621120.,  6823386.,  6840324.,
      6857262.,  6874200.,  6896844.,  6913800.,  6930756.,  6947712.,
      6970446.,  6987420.,  7004394.,  7021368.,  7044192.,  7061184.,
      7078176.,  7095168.,  6845922.,  6862932.,  6879942.,  6896952.,
      6919668.,  6936696.,  6953724.,  6970752.,  6993558.,  7010604.,
      7027650.,  7044696.,  7067592.,  7084656.,  7101720.,  7118784.,
      10034703., 10060110., 10085517., 10110924., 10144674., 10170108.,
      10195542., 10220976., 10254861., 10280322., 10305783., 10331244.,
      10365264., 10390752., 10416240., 10441728., 10067643., 10093158.,
      10118673., 10144188., 10178046., 10203588., 10229130., 10254672.,
      10288665., 10314234., 10339803., 10365372., 10399500., 10425096.,
      10450692., 10476288., 10100583., 10126206., 10151829., 10177452.,
      10211418., 10237068., 10262718., 10288368., 10322469., 10348146.,
      10373823., 10399500., 10433736., 10459440., 10485144., 10510848.,
      6573762.,  6590772.,  6607782.,  6624792.,  6647220.,  6664248.,
      6681276.,  6698304.,  6720822.,  6737868.,  6754914.,  6771960.,
      6794568.,  6811632.,  6828696.,  6845760.,  6595146.,  6612228.,
      6629310.,  6646392.,  6668892.,  6685992.,  6703092.,  6720192.,
      6742782.,  6759900.,  6777018.,  6794136.,  6816816.,  6833952.,
      6851088.,  6868224.,  8368920.,  8390448.,  8411976.,  8433504.,
      8462064.,  8483616.,  8505168.,  8526720.,  8555400.,  8576976.,
      8598552.,  8620128.,  8648928.,  8670528.,  8692128.,  8713728.,
      8396664.,  8418288.,  8439912.,  8461536.,  8490192.,  8511840.,
      8533488.,  8555136.,  8583912.,  8605584.,  8627256.,  8648928.,
      8677824.,  8699520.,  8721216.,  8742912.,  12298884., 12331176.,
      12363468., 12395760., 12438312., 12470640., 12502968., 12535296.,
      12578028., 12610392., 12642756., 12675120., 12718032., 12750432.,
      12782832., 12815232., 12339348., 12371784., 12404220., 12436656.,
      12479352., 12511824., 12544296., 12576768., 12619644., 12652152.,
      12684660., 12717168., 12760224., 12792768., 12825312., 12857856.,
      12379812., 12412392., 12444972., 12477552., 12520392., 12553008.,
      12585624., 12618240., 12661260., 12693912., 12726564., 12759216.,
      12802416., 12835104., 12867792., 12900480., 8050680.,  8072304.,
      8093928.,  8115552.,  8143824.,  8165472.,  8187120.,  8208768.,
      8237160.,  8258832.,  8280504.,  8302176.,  8330688.,  8352384.,
      8374080.,  8395776.,  8076888.,  8098608.,  8120328.,  8142048.,
      8170416.,  8192160.,  8213904.,  8235648.,  8264136.,  8285904.,
      8307672.,  8329440.,  8358048.,  8379840.,  8401632.,  8423424.,
      8674104.,  8696688.,  8719272.,  8741856.,  8771472.,  8794080.,
      8816688.,  8839296.,  8869032.,  8891664.,  8914296.,  8936928.,
      8966784.,  8989440.,  9012096.,  9034752.,  8701848.,  8724528.,
      8747208.,  8769888.,  8799600.,  8822304.,  8845008.,  8867712.,
      8897544.,  8920272.,  8943000.,  8965728.,  8995680.,  9018432.,
      9041184.,  9063936.,  12743988., 12777864., 12811740., 12845616.,
      12889752., 12923664., 12957576., 12991488., 13035804., 13069752.,
      13103700., 13137648., 13182144., 13216128., 13250112., 13284096.,
      12784452., 12818472., 12852492., 12886512., 12930792., 12964848.,
      12998904., 13032960., 13077420., 13111512., 13145604., 13179696.,
      13224336., 13258464., 13292592., 13326720., 12824916., 12859080.,
      12893244., 12927408., 12971832., 13006032., 13040232., 13074432.,
      13119036., 13153272., 13187508., 13221744., 13266528., 13300800.,
      13335072., 13369344., 8338968.,  8361648.,  8384328.,  8407008.,
      8436336.,  8459040.,  8481744.,  8504448.,  8533896.,  8556624.,
      8579352.,  8602080.,  8631648.,  8654400.,  8677152.,  8699904.,
      8365176.,  8387952.,  8410728.,  8433504.,  8462928.,  8485728.,
      8508528.,  8531328.,  8560872.,  8583696.,  8606520.,  8629344.,
      8659008.,  8681856.,  8704704.,  8727552.,  5800482.,  5816628.,
      5832774.,  5848920.,  5869908.,  5886072.,  5902236.,  5918400.,
      5939478.,  5955660.,  5971842.,  5988024.,  6009192.,  6025392.,
      6041592.,  6057792.,  5819562.,  5835780.,  5851998.,  5868216.,
      5889276.,  5905512.,  5921748.,  5937984.,  5959134.,  5975388.,
      5991642.,  6007896.,  6029136.,  6045408.,  6061680.,  6077952.,
      8509851.,  8534070.,  8558289.,  8582508.,  8613774.,  8638020.,
      8662266.,  8686512.,  8717913.,  8742186.,  8766459.,  8790732.,
      8822268.,  8846568.,  8870868.,  8895168.,  8537607.,  8561934.,
      8586261.,  8610588.,  8641962.,  8666316.,  8690670.,  8715024.,
      8746533.,  8770914.,  8795295.,  8819676.,  8851320.,  8875728.,
      8900136.,  8924544.,  8565363.,  8589798.,  8614233.,  8638668.,
      8670150.,  8694612.,  8719074.,  8743536.,  8775153.,  8799642.,
      8824131.,  8848620.,  8880372.,  8904888.,  8929404.,  8953920.,
      5560074.,  5576292.,  5592510.,  5608728.,  5629500.,  5645736.,
      5661972.,  5678208.,  5699070.,  5715324.,  5731578.,  5747832.,
      5768784.,  5785056.,  5801328.,  5817600.,  5578002.,  5594292.,
      5610582.,  5626872.,  5647716.,  5664024.,  5680332.,  5696640.,
      5717574.,  5733900.,  5750226.,  5766552.,  5787576.,  5803920.,
      5820264.,  5836608.,  6010362.,  6027300.,  6044238.,  6061176.,
      6082956.,  6099912.,  6116868.,  6133824.,  6155694.,  6172668.,
      6189642.,  6206616.,  6228576.,  6245568.,  6262560.,  6279552.,
      6029442.,  6046452.,  6063462.,  6080472.,  6102324.,  6119352.,
      6136380.,  6153408.,  6175350.,  6192396.,  6209442.,  6226488.,
      6248520.,  6265584.,  6282648.,  6299712.,  8815167.,  8840574.,
      8865981.,  8891388.,  8923842.,  8949276.,  8974710.,  9000144.,
      9032733.,  9058194.,  9083655.,  9109116.,  9141840.,  9167328.,
      9192816.,  9218304.,  8842923.,  8868438.,  8893953.,  8919468.,
      8952030.,  8977572.,  9003114.,  9028656.,  9061353.,  9086922.,
      9112491.,  9138060.,  9170892.,  9196488.,  9222084.,  9247680.,
      8870679.,  8896302.,  8921925.,  8947548.,  8980218.,  9005868.,
      9031518.,  9057168.,  9089973.,  9115650.,  9141327.,  9167004.,
      9199944.,  9225648.,  9251352.,  9277056.,  5757282.,  5774292.,
      5791302.,  5808312.,  5829876.,  5846904.,  5863932.,  5880960.,
      5902614.,  5919660.,  5936706.,  5953752.,  5975496.,  5992560.,
      6009624.,  6026688.,  5775210.,  5792292.,  5809374.,  5826456.,
      5848092.,  5865192.,  5882292.,  5899392.,  5921118.,  5938236.,
      5955354.,  5972472.,  5994288.,  6011424.,  6028560.,  6045696.,
      6220242.,  6237972.,  6255702.,  6273432.,  6296004.,  6313752.,
      6331500.,  6349248.,  6371910.,  6389676.,  6407442.,  6425208.,
      6447960.,  6465744.,  6483528.,  6501312.,  6239322.,  6257124.,
      6274926.,  6292728.,  6315372.,  6333192.,  6351012.,  6368832.,
      6391566.,  6409404.,  6427242.,  6445080.,  6467904.,  6485760.,
      6503616.,  6521472.,  9120483.,  9147078.,  9173673.,  9200268.,
      9233910.,  9260532.,  9287154.,  9313776.,  9347553.,  9374202.,
      9400851.,  9427500.,  9461412.,  9488088.,  9514764.,  9541440.,
      9148239.,  9174942.,  9201645.,  9228348.,  9262098.,  9288828.,
      9315558.,  9342288.,  9376173.,  9402930.,  9429687.,  9456444.,
      9490464.,  9517248.,  9544032.,  9570816.,  9175995.,  9202806.,
      9229617.,  9256428.,  9290286.,  9317124.,  9343962.,  9370800.,
      9404793.,  9431658.,  9458523.,  9485388.,  9519516.,  9546408.,
      9573300.,  9600192.,  5954490.,  5972292.,  5990094.,  6007896.,
      6030252.,  6048072.,  6065892.,  6083712.,  6106158.,  6123996.,
      6141834.,  6159672.,  6182208.,  6200064.,  6217920.,  6235776.,
      5972418.,  5990292.,  6008166.,  6026040.,  6048468.,  6066360.,
      6084252.,  6102144.,  6124662.,  6142572.,  6160482.,  6178392.,
      6201000.,  6218928.,  6236856.,  6254784.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x11x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1094540., 1103096., 1111652., 1120208., 1129880., 1138448., 1147016.,
      1155584., 1165316., 1173896., 1182476., 1191056., 1200848., 1209440.,
      1218032., 1226624., 1098812., 1107416., 1116020., 1124624., 1134344.,
      1142960., 1151576., 1160192., 1169972., 1178600., 1187228., 1195856.,
      1205696., 1214336., 1222976., 1231616., 1103084., 1111736., 1120388.,
      1129040., 1138808., 1147472., 1156136., 1164800., 1174628., 1183304.,
      1191980., 1200656., 1210544., 1219232., 1227920., 1236608., 1107356.,
      1116056., 1124756., 1133456., 1143272., 1151984., 1160696., 1169408.,
      1179284., 1188008., 1196732., 1205456., 1215392., 1224128., 1232864.,
      1241600., 1111628., 1120376., 1129124., 1137872., 1147736., 1156496.,
      1165256., 1174016., 1183940., 1192712., 1201484., 1210256., 1220240.,
      1229024., 1237808., 1246592., 1115900., 1124696., 1133492., 1142288.,
      1152200., 1161008., 1169816., 1178624., 1188596., 1197416., 1206236.,
      1215056., 1225088., 1233920., 1242752., 1251584., 1120172., 1129016.,
      1137860., 1146704., 1156664., 1165520., 1174376., 1183232., 1193252.,
      1202120., 1210988., 1219856., 1229936., 1238816., 1247696., 1256576.,
      1141532., 1150616., 1159700., 1168784., 1178984., 1188080., 1197176.,
      1206272., 1216532., 1225640., 1234748., 1243856., 1254176., 1263296.,
      1272416., 1281536., 1145804., 1154936., 1164068., 1173200., 1183448.,
      1192592., 1201736., 1210880., 1221188., 1230344., 1239500., 1248656.,
      1259024., 1268192., 1277360., 1286528., 1150076., 1159256., 1168436.,
      1177616., 1187912., 1197104., 1206296., 1215488., 1225844., 1235048.,
      1244252., 1253456., 1263872., 1273088., 1282304., 1291520., 1154348.,
      1163576., 1172804., 1182032., 1192376., 1201616., 1210856., 1220096.,
      1230500., 1239752., 1249004., 1258256., 1268720., 1277984., 1287248.,
      1296512., 1158620., 1167896., 1177172., 1186448., 1196840., 1206128.,
      1215416., 1224704., 1235156., 1244456., 1253756., 1263056., 1273568.,
      1282880., 1292192., 1301504., 1162892., 1172216., 1181540., 1190864.,
      1201304., 1210640., 1219976., 1229312., 1239812., 1249160., 1258508.,
      1267856., 1278416., 1287776., 1297136., 1306496., 1167164., 1176536.,
      1185908., 1195280., 1205768., 1215152., 1224536., 1233920., 1244468.,
      1253864., 1263260., 1272656., 1283264., 1292672., 1302080., 1311488.,
      1188524., 1198136., 1207748., 1217360., 1228088., 1237712., 1247336.,
      1256960., 1267748., 1277384., 1287020., 1296656., 1307504., 1317152.,
      1326800., 1336448., 1192796., 1202456., 1212116., 1221776., 1232552.,
      1242224., 1251896., 1261568., 1272404., 1282088., 1291772., 1301456.,
      1312352., 1322048., 1331744., 1341440., 1197068., 1206776., 1216484.,
      1226192., 1237016., 1246736., 1256456., 1266176., 1277060., 1286792.,
      1296524., 1306256., 1317200., 1326944., 1336688., 1346432., 1201340.,
      1211096., 1220852., 1230608., 1241480., 1251248., 1261016., 1270784.,
      1281716., 1291496., 1301276., 1311056., 1322048., 1331840., 1341632.,
      1351424., 1205612., 1215416., 1225220., 1235024., 1245944., 1255760.,
      1265576., 1275392., 1286372., 1296200., 1306028., 1315856., 1326896.,
      1336736., 1346576., 1356416., 1209884., 1219736., 1229588., 1239440.,
      1250408., 1260272., 1270136., 1280000., 1291028., 1300904., 1310780.,
      1320656., 1331744., 1341632., 1351520., 1361408., 1214156., 1224056.,
      1233956., 1243856., 1254872., 1264784., 1274696., 1284608., 1295684.,
      1305608., 1315532., 1325456., 1336592., 1346528., 1356464., 1366400.,
      1235516., 1245656., 1255796., 1265936., 1277192., 1287344., 1297496.,
      1307648., 1318964., 1329128., 1339292., 1349456., 1360832., 1371008.,
      1381184., 1391360., 1239788., 1249976., 1260164., 1270352., 1281656.,
      1291856., 1302056., 1312256., 1323620., 1333832., 1344044., 1354256.,
      1365680., 1375904., 1386128., 1396352., 1244060., 1254296., 1264532.,
      1274768., 1286120., 1296368., 1306616., 1316864., 1328276., 1338536.,
      1348796., 1359056., 1370528., 1380800., 1391072., 1401344., 1248332.,
      1258616., 1268900., 1279184., 1290584., 1300880., 1311176., 1321472.,
      1332932., 1343240., 1353548., 1363856., 1375376., 1385696., 1396016.,
      1406336., 1252604., 1262936., 1273268., 1283600., 1295048., 1305392.,
      1315736., 1326080., 1337588., 1347944., 1358300., 1368656., 1380224.,
      1390592., 1400960., 1411328., 1256876., 1267256., 1277636., 1288016.,
      1299512., 1309904., 1320296., 1330688., 1342244., 1352648., 1363052.,
      1373456., 1385072., 1395488., 1405904., 1416320., 1261148., 1271576.,
      1282004., 1292432., 1303976., 1314416., 1324856., 1335296., 1346900.,
      1357352., 1367804., 1378256., 1389920., 1400384., 1410848., 1421312.,
      1282508., 1293176., 1303844., 1314512., 1326296., 1336976., 1347656.,
      1358336., 1370180., 1380872., 1391564., 1402256., 1414160., 1424864.,
      1435568., 1446272., 1286780., 1297496., 1308212., 1318928., 1330760.,
      1341488., 1352216., 1362944., 1374836., 1385576., 1396316., 1407056.,
      1419008., 1429760., 1440512., 1451264., 1291052., 1301816., 1312580.,
      1323344., 1335224., 1346000., 1356776., 1367552., 1379492., 1390280.,
      1401068., 1411856., 1423856., 1434656., 1445456., 1456256., 1295324.,
      1306136., 1316948., 1327760., 1339688., 1350512., 1361336., 1372160.,
      1384148., 1394984., 1405820., 1416656., 1428704., 1439552., 1450400.,
      1461248., 1299596., 1310456., 1321316., 1332176., 1344152., 1355024.,
      1365896., 1376768., 1388804., 1399688., 1410572., 1421456., 1433552.,
      1444448., 1455344., 1466240., 1303868., 1314776., 1325684., 1336592.,
      1348616., 1359536., 1370456., 1381376., 1393460., 1404392., 1415324.,
      1426256., 1438400., 1449344., 1460288., 1471232., 1308140., 1319096.,
      1330052., 1341008., 1353080., 1364048., 1375016., 1385984., 1398116.,
      1409096., 1420076., 1431056., 1443248., 1454240., 1465232., 1476224.,
      1329500., 1340696., 1351892., 1363088., 1375400., 1386608., 1397816.,
      1409024., 1421396., 1432616., 1443836., 1455056., 1467488., 1478720.,
      1489952., 1501184., 1333772., 1345016., 1356260., 1367504., 1379864.,
      1391120., 1402376., 1413632., 1426052., 1437320., 1448588., 1459856.,
      1472336., 1483616., 1494896., 1506176., 1338044., 1349336., 1360628.,
      1371920., 1384328., 1395632., 1406936., 1418240., 1430708., 1442024.,
      1453340., 1464656., 1477184., 1488512., 1499840., 1511168., 1342316.,
      1353656., 1364996., 1376336., 1388792., 1400144., 1411496., 1422848.,
      1435364., 1446728., 1458092., 1469456., 1482032., 1493408., 1504784.,
      1516160., 1346588., 1357976., 1369364., 1380752., 1393256., 1404656.,
      1416056., 1427456., 1440020., 1451432., 1462844., 1474256., 1486880.,
      1498304., 1509728., 1521152., 1350860., 1362296., 1373732., 1385168.,
      1397720., 1409168., 1420616., 1432064., 1444676., 1456136., 1467596.,
      1479056., 1491728., 1503200., 1514672., 1526144., 1355132., 1366616.,
      1378100., 1389584., 1402184., 1413680., 1425176., 1436672., 1449332.,
      1460840., 1472348., 1483856., 1496576., 1508096., 1519616., 1531136.,
      1376492., 1388216., 1399940., 1411664., 1424504., 1436240., 1447976.,
      1459712., 1472612., 1484360., 1496108., 1507856., 1520816., 1532576.,
      1544336., 1556096., 1380764., 1392536., 1404308., 1416080., 1428968.,
      1440752., 1452536., 1464320., 1477268., 1489064., 1500860., 1512656.,
      1525664., 1537472., 1549280., 1561088., 1385036., 1396856., 1408676.,
      1420496., 1433432., 1445264., 1457096., 1468928., 1481924., 1493768.,
      1505612., 1517456., 1530512., 1542368., 1554224., 1566080., 1389308.,
      1401176., 1413044., 1424912., 1437896., 1449776., 1461656., 1473536.,
      1486580., 1498472., 1510364., 1522256., 1535360., 1547264., 1559168.,
      1571072., 1393580., 1405496., 1417412., 1429328., 1442360., 1454288.,
      1466216., 1478144., 1491236., 1503176., 1515116., 1527056., 1540208.,
      1552160., 1564112., 1576064., 1397852., 1409816., 1421780., 1433744.,
      1446824., 1458800., 1470776., 1482752., 1495892., 1507880., 1519868.,
      1531856., 1545056., 1557056., 1569056., 1581056., 1402124., 1414136.,
      1426148., 1438160., 1451288., 1463312., 1475336., 1487360., 1500548.,
      1512584., 1524620., 1536656., 1549904., 1561952., 1574000., 1586048.};
  const std::array<int, 4> in_shape = {{3, 14, 11, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      116712., 171252., 171792., 172332., 172872., 112635., 112986.,
      121140., 177732., 178272., 178812., 179352., 116847., 117198.,
      148776., 218130., 218796., 219462., 220128., 143304., 143736.,
      154248., 226122., 226788., 227454., 228120., 148488., 148920.,
      103428., 151407., 151866., 152325., 152784., 99297.,  99594.,
      107208., 156915., 157374., 157833., 158292., 102861., 103158.,
      110988., 162423., 162882., 163341., 163800., 106425., 106722.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x12x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      20886., 20964., 21042., 21120., 21198., 21276., 21354., 21822., 21900.,
      21978., 22056., 22134., 22212., 22290., 22758., 22836., 22914., 22992.,
      23070., 23148., 23226., 23694., 23772., 23850., 23928., 24006., 24084.,
      24162., 24630., 24708., 24786., 24864., 24942., 25020., 25098., 25566.,
      25644., 25722., 25800., 25878., 25956., 26034., 26502., 26580., 26658.,
      26736., 26814., 26892., 26970.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      228996., 233424., 335889., 342504., 336942., 343584., 337995., 344664.,
      339048., 345744., 220824., 225270., 221508., 225972., 237636., 242280.,
      348525., 355464., 349578., 356544., 350631., 357624., 351684., 358704.,
      229032., 233694., 229716., 234396., 291648., 297552., 427440., 436260.,
      428736., 437592., 430032., 438924., 431328., 440256., 280680., 286608.,
      281520., 287472., 302304., 308496., 442992., 452244., 444288., 453576.,
      445584., 454908., 446880., 456240., 290760., 296976., 291600., 297840.,
      202428., 206856., 296199., 302814., 297090., 303732., 297981., 304650.,
      298872., 305568., 194148., 198594., 194724., 199188., 209772., 214416.,
      306891., 313830., 307782., 314748., 308673., 315666., 309564., 316584.,
      201060., 205722., 201636., 206316., 217116., 221976., 317583., 324846.,
      318474., 325764., 319365., 326682., 320256., 327600., 207972., 212850.,
      208548., 213444.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x12x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      39432., 41772., 39576., 41928., 39720., 42084., 39864., 42240., 40008.,
      42396., 40152., 42552., 40296., 42708., 41160., 43644., 41304., 43800.,
      41448., 43956., 41592., 44112., 41736., 44268., 41880., 44424., 42024.,
      44580., 42888., 45516., 43032., 45672., 43176., 45828., 43320., 45984.,
      43464., 46140., 43608., 46296., 43752., 46452., 44616., 47388., 44760.,
      47544., 44904., 47700., 45048., 47856., 45192., 48012., 45336., 48168.,
      45480., 48324., 46344., 49260., 46488., 49416., 46632., 49572., 46776.,
      49728., 46920., 49884., 47064., 50040., 47208., 50196., 48072., 51132.,
      48216., 51288., 48360., 51444., 48504., 51600., 48648., 51756., 48792.,
      51912., 48936., 52068., 49800., 53004., 49944., 53160., 50088., 53316.,
      50232., 53472., 50376., 53628., 50520., 53784., 50664., 53940.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      453564., 457992., 462420., 466848., 665163., 671778., 678393., 685008.,
      667242., 673884., 680526., 687168., 669321., 675990., 682659., 689328.,
      671400., 678096., 684792., 691488., 437202., 441648., 446094., 450540.,
      438552., 443016., 447480., 451944., 470628., 475272., 479916., 484560.,
      690111., 697050., 703989., 710928., 692190., 699156., 706122., 713088.,
      694269., 701262., 708255., 715248., 696348., 703368., 710388., 717408.,
      453402., 458064., 462726., 467388., 454752., 459432., 464112., 468792.,
      577392., 583296., 589200., 595104., 846060., 854880., 863700., 872520.,
      848616., 857472., 866328., 875184., 851172., 860064., 868956., 877848.,
      853728., 862656., 871584., 880512., 555432., 561360., 567288., 573216.,
      557088., 563040., 568992., 574944., 598416., 604608., 610800., 616992.,
      876732., 885984., 895236., 904488., 879288., 888576., 897864., 907152.,
      881844., 891168., 900492., 909816., 884400., 893760., 903120., 912480.,
      575304., 581520., 587736., 593952., 576960., 583200., 589440., 595680.,
      400428., 404856., 409284., 413712., 585783., 592398., 599013., 605628.,
      587538., 594180., 600822., 607464., 589293., 595962., 602631., 609300.,
      591048., 597744., 604440., 611136., 383850., 388296., 392742., 397188.,
      384984., 389448., 393912., 398376., 414900., 419544., 424188., 428832.,
      606843., 613782., 620721., 627660., 608598., 615564., 622530., 629496.,
      610353., 617346., 624339., 631332., 612108., 619128., 626148., 633168.,
      397458., 402120., 406782., 411444., 398592., 403272., 407952., 412632.,
      429372., 434232., 439092., 443952., 627903., 635166., 642429., 649692.,
      629658., 636948., 644238., 651528., 631413., 638730., 646047., 653364.,
      633168., 640512., 647856., 655200., 411066., 415944., 420822., 425700.,
      412200., 417096., 421992., 426888.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x12x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      76524., 78864.,  81204.,  83544.,  76800., 79152.,  81504.,  83856.,
      77076., 79440.,  81804.,  84168.,  77352., 79728.,  82104.,  84480.,
      77628., 80016.,  82404.,  84792.,  77904., 80304.,  82704.,  85104.,
      78180., 80592.,  83004.,  85416.,  79836., 82320.,  84804.,  87288.,
      80112., 82608.,  85104.,  87600.,  80388., 82896.,  85404.,  87912.,
      80664., 83184.,  85704.,  88224.,  80940., 83472.,  86004.,  88536.,
      81216., 83760.,  86304.,  88848.,  81492., 84048.,  86604.,  89160.,
      83148., 85776.,  88404.,  91032.,  83424., 86064.,  88704.,  91344.,
      83700., 86352.,  89004.,  91656.,  83976., 86640.,  89304.,  91968.,
      84252., 86928.,  89604.,  92280.,  84528., 87216.,  89904.,  92592.,
      84804., 87504.,  90204.,  92904.,  86460., 89232.,  92004.,  94776.,
      86736., 89520.,  92304.,  95088.,  87012., 89808.,  92604.,  95400.,
      87288., 90096.,  92904.,  95712.,  87564., 90384.,  93204.,  96024.,
      87840., 90672.,  93504.,  96336.,  88116., 90960.,  93804.,  96648.,
      89772., 92688.,  95604.,  98520.,  90048., 92976.,  95904.,  98832.,
      90324., 93264.,  96204.,  99144.,  90600., 93552.,  96504.,  99456.,
      90876., 93840.,  96804.,  99768.,  91152., 94128.,  97104.,  100080.,
      91428., 94416.,  97404.,  100392., 93084., 96144.,  99204.,  102264.,
      93360., 96432.,  99504.,  102576., 93636., 96720.,  99804.,  102888.,
      93912., 97008.,  100104., 103200., 94188., 97296.,  100404., 103512.,
      94464., 97584.,  100704., 103824., 94740., 97872.,  101004., 104136.,
      96396., 99600.,  102804., 106008., 96672., 99888.,  103104., 106320.,
      96948., 100176., 103404., 106632., 97224., 100464., 103704., 106944.,
      97500., 100752., 104004., 107256., 97776., 101040., 104304., 107568.,
      98052., 101328., 104604., 107880.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      457272., 466848., 670725., 685008., 672831., 687168., 674937., 689328.,
      677043., 691488., 440964., 450540., 442332., 451944., 474552., 484560.,
      695997., 710928., 698103., 713088., 700209., 715248., 702315., 717408.,
      457380., 467388., 458748., 468792., 582408., 595104., 853584., 872520.,
      856176., 875184., 858768., 877848., 861360., 880512., 560520., 573216.,
      562200., 574944., 603720., 616992., 884688., 904488., 887280., 907152.,
      889872., 909816., 892464., 912480., 580680., 593952., 582360., 595680.,
      404244., 413712., 591507., 605628., 593289., 607464., 595071., 609300.,
      596853., 611136., 387720., 397188., 388872., 398376., 418932., 428832.,
      612891., 627660., 614673., 629496., 616455., 631332., 618237., 633168.,
      401544., 411444., 402696., 412632., 433620., 443952., 634275., 649692.,
      636057., 651528., 637839., 653364., 639621., 655200., 415368., 425700.,
      416520., 426888.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x12x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      78720.,  83544.,  79008.,  83856.,  79296.,  84168.,  79584.,  84480.,
      79872.,  84792.,  80160.,  85104.,  80448.,  85416.,  82176.,  87288.,
      82464.,  87600.,  82752.,  87912.,  83040.,  88224.,  83328.,  88536.,
      83616.,  88848.,  83904.,  89160.,  85632.,  91032.,  85920.,  91344.,
      86208.,  91656.,  86496.,  91968.,  86784.,  92280.,  87072.,  92592.,
      87360.,  92904.,  89088.,  94776.,  89376.,  95088.,  89664.,  95400.,
      89952.,  95712.,  90240.,  96024.,  90528.,  96336.,  90816.,  96648.,
      92544.,  98520.,  92832.,  98832.,  93120.,  99144.,  93408.,  99456.,
      93696.,  99768.,  93984.,  100080., 94272.,  100392., 96000.,  102264.,
      96288.,  102576., 96576.,  102888., 96864.,  103200., 97152.,  103512.,
      97440.,  103824., 97728.,  104136., 99456.,  106008., 99744.,  106320.,
      100032., 106632., 100320., 106944., 100608., 107256., 100896., 107568.,
      101184., 107880.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      905706.,  914544.,  924840.,  933696.,  1328247., 1341450., 1356786.,
      1370016., 1332405., 1345662., 1361052., 1374336., 1336563., 1349874.,
      1365318., 1378656., 1340721., 1354086., 1369584., 1382976., 873054.,
      881928.,  892188.,  901080.,  875754.,  884664.,  894960.,  903888.,
      939834.,  949104.,  959832.,  969120.,  1378143., 1391994., 1407978.,
      1421856., 1382301., 1396206., 1412244., 1426176., 1386459., 1400418.,
      1416510., 1430496., 1390617., 1404630., 1420776., 1434816., 905454.,
      914760.,  925452.,  934776.,  908154.,  917496.,  928224.,  937584.,
      1153032., 1164816., 1178400., 1190208., 1689564., 1707168., 1727400.,
      1745040., 1694676., 1712352., 1732656., 1750368., 1699788., 1717536.,
      1737912., 1755696., 1704900., 1722720., 1743168., 1761024., 1109208.,
      1121040., 1134576., 1146432., 1112520., 1124400., 1137984., 1149888.,
      1195080., 1207440., 1221600., 1233984., 1750908., 1769376., 1790472.,
      1808976., 1756020., 1774560., 1795728., 1814304., 1761132., 1779744.,
      1800984., 1819632., 1766244., 1784928., 1806240., 1824960., 1148952.,
      1161360., 1175472., 1187904., 1152264., 1164720., 1178880., 1191360.,
      799650.,  808488.,  818568.,  827424.,  1169811., 1183014., 1198026.,
      1211256., 1173321., 1186578., 1201644., 1214928., 1176831., 1190142.,
      1205262., 1218600., 1180341., 1193706., 1208880., 1222272., 766566.,
      775440.,  785484.,  794376.,  768834.,  777744.,  787824.,  796752.,
      828594.,  837864.,  848376.,  857664.,  1211931., 1225782., 1241442.,
      1255320., 1215441., 1229346., 1245060., 1258992., 1218951., 1232910.,
      1248678., 1262664., 1222461., 1236474., 1252296., 1266336., 793782.,
      803088.,  813564.,  822888.,  796050.,  805392.,  815904.,  825264.,
      857538.,  867240.,  878184.,  887904.,  1254051., 1268550., 1284858.,
      1299384., 1257561., 1272114., 1288476., 1303056., 1261071., 1275678.,
      1292094., 1306728., 1264581., 1279242., 1295712., 1310400., 820998.,
      830736.,  841644.,  851400.,  823266.,  833040.,  843984.,  853776.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x12x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      152772., 157440., 162408., 167088., 153324., 158016., 163008., 167712.,
      153876., 158592., 163608., 168336., 154428., 159168., 164208., 168960.,
      154980., 159744., 164808., 169584., 155532., 160320., 165408., 170208.,
      156084., 160896., 166008., 170832., 159396., 164352., 169608., 174576.,
      159948., 164928., 170208., 175200., 160500., 165504., 170808., 175824.,
      161052., 166080., 171408., 176448., 161604., 166656., 172008., 177072.,
      162156., 167232., 172608., 177696., 162708., 167808., 173208., 178320.,
      166020., 171264., 176808., 182064., 166572., 171840., 177408., 182688.,
      167124., 172416., 178008., 183312., 167676., 172992., 178608., 183936.,
      168228., 173568., 179208., 184560., 168780., 174144., 179808., 185184.,
      169332., 174720., 180408., 185808., 172644., 178176., 184008., 189552.,
      173196., 178752., 184608., 190176., 173748., 179328., 185208., 190800.,
      174300., 179904., 185808., 191424., 174852., 180480., 186408., 192048.,
      175404., 181056., 187008., 192672., 175956., 181632., 187608., 193296.,
      179268., 185088., 191208., 197040., 179820., 185664., 191808., 197664.,
      180372., 186240., 192408., 198288., 180924., 186816., 193008., 198912.,
      181476., 187392., 193608., 199536., 182028., 187968., 194208., 200160.,
      182580., 188544., 194808., 200784., 185892., 192000., 198408., 204528.,
      186444., 192576., 199008., 205152., 186996., 193152., 199608., 205776.,
      187548., 193728., 200208., 206400., 188100., 194304., 200808., 207024.,
      188652., 194880., 201408., 207648., 189204., 195456., 202008., 208272.,
      192516., 198912., 205608., 212016., 193068., 199488., 206208., 212640.,
      193620., 200064., 206808., 213264., 194172., 200640., 207408., 213888.,
      194724., 201216., 208008., 214512., 195276., 201792., 208608., 215136.,
      195828., 202368., 209208., 215760.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1802574., 1811412., 1820250., 1829088., 1840824., 1849680., 1858536.,
      1867392., 2643291., 2656494., 2669697., 2682900., 2700342., 2713572.,
      2726802., 2740032., 2651553., 2664810., 2678067., 2691324., 2708820.,
      2722104., 2735388., 2748672., 2659815., 2673126., 2686437., 2699748.,
      2717298., 2730636., 2743974., 2757312., 2668077., 2681442., 2694807.,
      2708172., 2725776., 2739168., 2752560., 2765952., 1737234., 1746108.,
      1754982., 1763856., 1775484., 1784376., 1793268., 1802160., 1742598.,
      1751508., 1760418., 1769328., 1780992., 1789920., 1798848., 1807776.,
      1870398., 1879668., 1888938., 1898208., 1910376., 1919664., 1928952.,
      1938240., 2742435., 2756286., 2770137., 2783988., 2802078., 2815956.,
      2829834., 2843712., 2750697., 2764602., 2778507., 2792412., 2810556.,
      2824488., 2838420., 2852352., 2758959., 2772918., 2786877., 2800836.,
      2819034., 2833020., 2847006., 2860992., 2767221., 2781234., 2795247.,
      2809260., 2827512., 2841552., 2855592., 2869632., 1801602., 1810908.,
      1820214., 1829520., 1841580., 1850904., 1860228., 1869552., 1806966.,
      1816308., 1825650., 1834992., 1847088., 1856448., 1865808., 1875168.,
      2294280., 2306064., 2317848., 2329632., 2344992., 2356800., 2368608.,
      2380416., 3361524., 3379128., 3396732., 3414336., 3437160., 3454800.,
      3472440., 3490080., 3371676., 3389352., 3407028., 3424704., 3447600.,
      3465312., 3483024., 3500736., 3381828., 3399576., 3417324., 3435072.,
      3458040., 3475824., 3493608., 3511392., 3391980., 3409800., 3427620.,
      3445440., 3468480., 3486336., 3504192., 3522048., 2206584., 2218416.,
      2230248., 2242080., 2257296., 2269152., 2281008., 2292864., 2213160.,
      2225040., 2236920., 2248800., 2264064., 2275968., 2287872., 2299776.,
      2377800., 2390160., 2402520., 2414880., 2430816., 2443200., 2455584.,
      2467968., 3483348., 3501816., 3520284., 3538752., 3562440., 3580944.,
      3599448., 3617952., 3493500., 3512040., 3530580., 3549120., 3572880.,
      3591456., 3610032., 3628608., 3503652., 3522264., 3540876., 3559488.,
      3583320., 3601968., 3620616., 3639264., 3513804., 3532488., 3551172.,
      3569856., 3593760., 3612480., 3631200., 3649920., 2285496., 2297904.,
      2310312., 2322720., 2338512., 2350944., 2363376., 2375808., 2292072.,
      2304528., 2316984., 2329440., 2345280., 2357760., 2370240., 2382720.,
      1590462., 1599300., 1608138., 1616976., 1628280., 1637136., 1645992.,
      1654848., 2326419., 2339622., 2352825., 2366028., 2382822., 2396052.,
      2409282., 2422512., 2333385., 2346642., 2359899., 2373156., 2390004.,
      2403288., 2416572., 2429856., 2340351., 2353662., 2366973., 2380284.,
      2397186., 2410524., 2423862., 2437200., 2347317., 2360682., 2374047.,
      2387412., 2404368., 2417760., 2431152., 2444544., 1524258., 1533132.,
      1542006., 1550880., 1562076., 1570968., 1579860., 1588752., 1528758.,
      1537668., 1546578., 1555488., 1566720., 1575648., 1584576., 1593504.,
      1647918., 1657188., 1666458., 1675728., 1687464., 1696752., 1706040.,
      1715328., 2410011., 2423862., 2437713., 2451564., 2469006., 2482884.,
      2496762., 2510640., 2416977., 2430882., 2444787., 2458692., 2476188.,
      2490120., 2504052., 2517984., 2423943., 2437902., 2451861., 2465820.,
      2483370., 2497356., 2511342., 2525328., 2430909., 2444922., 2458935.,
      2472948., 2490552., 2504592., 2518632., 2532672., 1578258., 1587564.,
      1596870., 1606176., 1617804., 1627128., 1636452., 1645776., 1582758.,
      1592100., 1601442., 1610784., 1622448., 1631808., 1641168., 1650528.,
      1705374., 1715076., 1724778., 1734480., 1746648., 1756368., 1766088.,
      1775808., 2493603., 2508102., 2522601., 2537100., 2555190., 2569716.,
      2584242., 2598768., 2500569., 2515122., 2529675., 2544228., 2562372.,
      2576952., 2591532., 2606112., 2507535., 2522142., 2536749., 2551356.,
      2569554., 2584188., 2598822., 2613456., 2514501., 2529162., 2543823.,
      2558484., 2576736., 2591424., 2606112., 2620800., 1632258., 1641996.,
      1651734., 1661472., 1673532., 1683288., 1693044., 1702800., 1636758.,
      1646532., 1656306., 1666080., 1678176., 1687968., 1697760., 1707552.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x12x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      300876., 305544., 310212., 314880., 320136., 324816., 329496., 334176.,
      301956., 306648., 311340., 316032., 321312., 326016., 330720., 335424.,
      303036., 307752., 312468., 317184., 322488., 327216., 331944., 336672.,
      304116., 308856., 313596., 318336., 323664., 328416., 333168., 337920.,
      305196., 309960., 314724., 319488., 324840., 329616., 334392., 339168.,
      306276., 311064., 315852., 320640., 326016., 330816., 335616., 340416.,
      307356., 312168., 316980., 321792., 327192., 332016., 336840., 341664.,
      313836., 318792., 323748., 328704., 334248., 339216., 344184., 349152.,
      314916., 319896., 324876., 329856., 335424., 340416., 345408., 350400.,
      315996., 321000., 326004., 331008., 336600., 341616., 346632., 351648.,
      317076., 322104., 327132., 332160., 337776., 342816., 347856., 352896.,
      318156., 323208., 328260., 333312., 338952., 344016., 349080., 354144.,
      319236., 324312., 329388., 334464., 340128., 345216., 350304., 355392.,
      320316., 325416., 330516., 335616., 341304., 346416., 351528., 356640.,
      326796., 332040., 337284., 342528., 348360., 353616., 358872., 364128.,
      327876., 333144., 338412., 343680., 349536., 354816., 360096., 365376.,
      328956., 334248., 339540., 344832., 350712., 356016., 361320., 366624.,
      330036., 335352., 340668., 345984., 351888., 357216., 362544., 367872.,
      331116., 336456., 341796., 347136., 353064., 358416., 363768., 369120.,
      332196., 337560., 342924., 348288., 354240., 359616., 364992., 370368.,
      333276., 338664., 344052., 349440., 355416., 360816., 366216., 371616.,
      339756., 345288., 350820., 356352., 362472., 368016., 373560., 379104.,
      340836., 346392., 351948., 357504., 363648., 369216., 374784., 380352.,
      341916., 347496., 353076., 358656., 364824., 370416., 376008., 381600.,
      342996., 348600., 354204., 359808., 366000., 371616., 377232., 382848.,
      344076., 349704., 355332., 360960., 367176., 372816., 378456., 384096.,
      345156., 350808., 356460., 362112., 368352., 374016., 379680., 385344.,
      346236., 351912., 357588., 363264., 369528., 375216., 380904., 386592.,
      352716., 358536., 364356., 370176., 376584., 382416., 388248., 394080.,
      353796., 359640., 365484., 371328., 377760., 383616., 389472., 395328.,
      354876., 360744., 366612., 372480., 378936., 384816., 390696., 396576.,
      355956., 361848., 367740., 373632., 380112., 386016., 391920., 397824.,
      357036., 362952., 368868., 374784., 381288., 387216., 393144., 399072.,
      358116., 364056., 369996., 375936., 382464., 388416., 394368., 400320.,
      359196., 365160., 371124., 377088., 383640., 389616., 395592., 401568.,
      365676., 371784., 377892., 384000., 390696., 396816., 402936., 409056.,
      366756., 372888., 379020., 385152., 391872., 398016., 404160., 410304.,
      367836., 373992., 380148., 386304., 393048., 399216., 405384., 411552.,
      368916., 375096., 381276., 387456., 394224., 400416., 406608., 412800.,
      369996., 376200., 382404., 388608., 395400., 401616., 407832., 414048.,
      371076., 377304., 383532., 389760., 396576., 402816., 409056., 415296.,
      372156., 378408., 384660., 390912., 397752., 404016., 410280., 416544.,
      378636., 385032., 391428., 397824., 404808., 411216., 417624., 424032.,
      379716., 386136., 392556., 398976., 405984., 412416., 418848., 425280.,
      380796., 387240., 393684., 400128., 407160., 413616., 420072., 426528.,
      381876., 388344., 394812., 401280., 408336., 414816., 421296., 427776.,
      382956., 389448., 395940., 402432., 409512., 416016., 422520., 429024.,
      384036., 390552., 397068., 403584., 410688., 417216., 423744., 430272.,
      385116., 391656., 398196., 404736., 411864., 418416., 424968., 431520.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1809990., 1829088., 1848222., 1867392., 2654415., 2682900., 2711439.,
      2740032., 2662731., 2691324., 2719971., 2748672., 2671047., 2699748.,
      2728503., 2757312., 2679363., 2708172., 2737035., 2765952., 1744758.,
      1763856., 1782990., 1802160., 1750158., 1769328., 1788534., 1807776.,
      1878246., 1898208., 1918206., 1938240., 2754207., 2783988., 2813823.,
      2843712., 2762523., 2792412., 2822355., 2852352., 2770839., 2800836.,
      2830887., 2860992., 2779155., 2809260., 2839419., 2869632., 1809558.,
      1829520., 1849518., 1869552., 1814958., 1834992., 1855062., 1875168.,
      2304312., 2329632., 2355000., 2380416., 3376572., 3414336., 3452172.,
      3490080., 3386796., 3424704., 3462684., 3500736., 3397020., 3435072.,
      3473196., 3511392., 3407244., 3445440., 3483708., 3522048., 2216760.,
      2242080., 2267448., 2292864., 2223384., 2248800., 2274264., 2299776.,
      2388408., 2414880., 2441400., 2467968., 3499260., 3538752., 3578316.,
      3617952., 3509484., 3549120., 3588828., 3628608., 3519708., 3559488.,
      3599340., 3639264., 3529932., 3569856., 3609852., 3649920., 2296248.,
      2322720., 2349240., 2375808., 2302872., 2329440., 2356056., 2382720.,
      1598094., 1616976., 1635894., 1654848., 2337867., 2366028., 2394243.,
      2422512., 2344887., 2373156., 2401479., 2429856., 2351907., 2380284.,
      2408715., 2437200., 2358927., 2387412., 2415951., 2444544., 1531998.,
      1550880., 1569798., 1588752., 1536534., 1555488., 1574478., 1593504.,
      1655982., 1675728., 1695510., 1715328., 2422107., 2451564., 2481075.,
      2510640., 2429127., 2458692., 2488311., 2517984., 2436147., 2465820.,
      2495547., 2525328., 2443167., 2472948., 2502783., 2532672., 1586430.,
      1606176., 1625958., 1645776., 1590966., 1610784., 1630638., 1650528.,
      1713870., 1734480., 1755126., 1775808., 2506347., 2537100., 2567907.,
      2598768., 2513367., 2544228., 2575143., 2606112., 2520387., 2551356.,
      2582379., 2613456., 2527407., 2558484., 2589615., 2620800., 1640862.,
      1661472., 1682118., 1702800., 1645398., 1666080., 1686798., 1707552.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x12x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      305268., 314880., 324516., 334176., 306372., 316032., 325716., 335424.,
      307476., 317184., 326916., 336672., 308580., 318336., 328116., 337920.,
      309684., 319488., 329316., 339168., 310788., 320640., 330516., 340416.,
      311892., 321792., 331716., 341664., 318516., 328704., 338916., 349152.,
      319620., 329856., 340116., 350400., 320724., 331008., 341316., 351648.,
      321828., 332160., 342516., 352896., 322932., 333312., 343716., 354144.,
      324036., 334464., 344916., 355392., 325140., 335616., 346116., 356640.,
      331764., 342528., 353316., 364128., 332868., 343680., 354516., 365376.,
      333972., 344832., 355716., 366624., 335076., 345984., 356916., 367872.,
      336180., 347136., 358116., 369120., 337284., 348288., 359316., 370368.,
      338388., 349440., 360516., 371616., 345012., 356352., 367716., 379104.,
      346116., 357504., 368916., 380352., 347220., 358656., 370116., 381600.,
      348324., 359808., 371316., 382848., 349428., 360960., 372516., 384096.,
      350532., 362112., 373716., 385344., 351636., 363264., 374916., 386592.,
      358260., 370176., 382116., 394080., 359364., 371328., 383316., 395328.,
      360468., 372480., 384516., 396576., 361572., 373632., 385716., 397824.,
      362676., 374784., 386916., 399072., 363780., 375936., 388116., 400320.,
      364884., 377088., 389316., 401568., 371508., 384000., 396516., 409056.,
      372612., 385152., 397716., 410304., 373716., 386304., 398916., 411552.,
      374820., 387456., 400116., 412800., 375924., 388608., 401316., 414048.,
      377028., 389760., 402516., 415296., 378132., 390912., 403716., 416544.,
      384756., 397824., 410916., 424032., 385860., 398976., 412116., 425280.,
      386964., 400128., 413316., 426528., 388068., 401280., 414516., 427776.,
      389172., 402432., 415716., 429024., 390276., 403584., 416916., 430272.,
      391380., 404736., 418116., 431520.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3602322., 3619980., 3640500., 3658176., 3678750., 3696444., 3717072.,
      3734784., 5282451., 5308830., 5339394., 5365800., 5396445., 5422878.,
      5453604., 5480064., 5298975., 5325462., 5356134., 5382648., 5413401.,
      5439942., 5470776., 5497344., 5315499., 5342094., 5372874., 5399496.,
      5430357., 5457006., 5487948., 5514624., 5332023., 5358726., 5389614.,
      5416344., 5447313., 5474070., 5505120., 5531904., 3471786., 3489516.,
      3509964., 3527712., 3548214., 3565980., 3586536., 3604320., 3482514.,
      3500316., 3520836., 3538656., 3559230., 3577068., 3597696., 3615552.,
      3737970., 3756492., 3777876., 3796416., 3817854., 3836412., 3857904.,
      3876480., 5480739., 5508414., 5540274., 5567976., 5599917., 5627646.,
      5659668., 5687424., 5497263., 5525046., 5557014., 5584824., 5616873.,
      5644710., 5676840., 5704704., 5513787., 5541678., 5573754., 5601672.,
      5633829., 5661774., 5694012., 5721984., 5530311., 5558310., 5590494.,
      5618520., 5650785., 5678838., 5711184., 5739264., 3600522., 3619116.,
      3640428., 3659040., 3680406., 3699036., 3720456., 3739104., 3611250.,
      3629916., 3651300., 3669984., 3691422., 3710124., 3731616., 3750336.,
      4585080., 4608624., 4635696., 4659264., 4686408., 4710000., 4737216.,
      4760832., 6717972., 6753144., 6793464., 6828672., 6869100., 6904344.,
      6944880., 6980160., 6738276., 6773592., 6814056., 6849408., 6889980.,
      6925368., 6966048., 7001472., 6758580., 6794040., 6834648., 6870144.,
      6910860., 6946392., 6987216., 7022784., 6778884., 6814488., 6855240.,
      6890880., 6931740., 6967416., 7008384., 7044096., 4409880., 4433520.,
      4460496., 4484160., 4511208., 4534896., 4562016., 4585728., 4423032.,
      4446768., 4473840., 4497600., 4524744., 4548528., 4575744., 4599552.,
      4752120., 4776816., 4805040., 4829760., 4858056., 4882800., 4911168.,
      4935936., 6961620., 6998520., 7040568., 7077504., 7119660., 7156632.,
      7198896., 7235904., 6981924., 7018968., 7061160., 7098240., 7140540.,
      7177656., 7220064., 7257216., 7002228., 7039416., 7081752., 7118976.,
      7161420., 7198680., 7241232., 7278528., 7022532., 7059864., 7102344.,
      7139712., 7182300., 7219704., 7262400., 7299840., 4567704., 4592496.,
      4620624., 4645440., 4673640., 4698480., 4726752., 4751616., 4580856.,
      4605744., 4633968., 4658880., 4687176., 4712112., 4740480., 4765440.,
      3178530., 3196188., 3216276., 3233952., 3254094., 3271788., 3291984.,
      3309696., 4649355., 4675734., 4705650., 4732056., 4762053., 4788486.,
      4818564., 4845024., 4663287., 4689774., 4719798., 4746312., 4776417.,
      4802958., 4833144., 4859712., 4677219., 4703814., 4733946., 4760568.,
      4790781., 4817430., 4847724., 4874400., 4691151., 4717854., 4748094.,
      4774824., 4805145., 4831902., 4862304., 4889088., 3046266., 3063996.,
      3084012., 3101760., 3121830., 3139596., 3159720., 3177504., 3055266.,
      3073068., 3093156., 3110976., 3131118., 3148956., 3169152., 3187008.,
      3293442., 3311964., 3332916., 3351456., 3372462., 3391020., 3412080.,
      3430656., 4816539., 4844214., 4875426., 4903128., 4934421., 4962150.,
      4993524., 5021280., 4830471., 4858254., 4889574., 4917384., 4948785.,
      4976622., 5008104., 5035968., 4844403., 4872294., 4903722., 4931640.,
      4963149., 4991094., 5022684., 5050656., 4858335., 4886334., 4917870.,
      4945896., 4977513., 5005566., 5037264., 5065344., 3154266., 3172860.,
      3193740., 3212352., 3233286., 3251916., 3272904., 3291552., 3163266.,
      3181932., 3202884., 3221568., 3242574., 3261276., 3282336., 3301056.,
      3408354., 3427740., 3449556., 3468960., 3490830., 3510252., 3532176.,
      3551616., 4983723., 5012694., 5045202., 5074200., 5106789., 5135814.,
      5168484., 5197536., 4997655., 5026734., 5059350., 5088456., 5121153.,
      5150286., 5183064., 5212224., 5011587., 5040774., 5073498., 5102712.,
      5135517., 5164758., 5197644., 5226912., 5025519., 5054814., 5087646.,
      5116968., 5149881., 5179230., 5212224., 5241600., 3262266., 3281724.,
      3303468., 3322944., 3344742., 3364236., 3386088., 3405600., 3271266.,
      3290796., 3312612., 3332160., 3354030., 3373596., 3395520., 3415104.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x12x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      601212., 610536., 620424., 629760., 639684., 649032., 658992., 668352.,
      603372., 612744., 622680., 632064., 642036., 651432., 661440., 670848.,
      605532., 614952., 624936., 634368., 644388., 653832., 663888., 673344.,
      607692., 617160., 627192., 636672., 646740., 656232., 666336., 675840.,
      609852., 619368., 629448., 638976., 649092., 658632., 668784., 678336.,
      612012., 621576., 631704., 641280., 651444., 661032., 671232., 680832.,
      614172., 623784., 633960., 643584., 653796., 663432., 673680., 683328.,
      627132., 637032., 647496., 657408., 667908., 677832., 688368., 698304.,
      629292., 639240., 649752., 659712., 670260., 680232., 690816., 700800.,
      631452., 641448., 652008., 662016., 672612., 682632., 693264., 703296.,
      633612., 643656., 654264., 664320., 674964., 685032., 695712., 705792.,
      635772., 645864., 656520., 666624., 677316., 687432., 698160., 708288.,
      637932., 648072., 658776., 668928., 679668., 689832., 700608., 710784.,
      640092., 650280., 661032., 671232., 682020., 692232., 703056., 713280.,
      653052., 663528., 674568., 685056., 696132., 706632., 717744., 728256.,
      655212., 665736., 676824., 687360., 698484., 709032., 720192., 730752.,
      657372., 667944., 679080., 689664., 700836., 711432., 722640., 733248.,
      659532., 670152., 681336., 691968., 703188., 713832., 725088., 735744.,
      661692., 672360., 683592., 694272., 705540., 716232., 727536., 738240.,
      663852., 674568., 685848., 696576., 707892., 718632., 729984., 740736.,
      666012., 676776., 688104., 698880., 710244., 721032., 732432., 743232.,
      678972., 690024., 701640., 712704., 724356., 735432., 747120., 758208.,
      681132., 692232., 703896., 715008., 726708., 737832., 749568., 760704.,
      683292., 694440., 706152., 717312., 729060., 740232., 752016., 763200.,
      685452., 696648., 708408., 719616., 731412., 742632., 754464., 765696.,
      687612., 698856., 710664., 721920., 733764., 745032., 756912., 768192.,
      689772., 701064., 712920., 724224., 736116., 747432., 759360., 770688.,
      691932., 703272., 715176., 726528., 738468., 749832., 761808., 773184.,
      704892., 716520., 728712., 740352., 752580., 764232., 776496., 788160.,
      707052., 718728., 730968., 742656., 754932., 766632., 778944., 790656.,
      709212., 720936., 733224., 744960., 757284., 769032., 781392., 793152.,
      711372., 723144., 735480., 747264., 759636., 771432., 783840., 795648.,
      713532., 725352., 737736., 749568., 761988., 773832., 786288., 798144.,
      715692., 727560., 739992., 751872., 764340., 776232., 788736., 800640.,
      717852., 729768., 742248., 754176., 766692., 778632., 791184., 803136.,
      730812., 743016., 755784., 768000., 780804., 793032., 805872., 818112.,
      732972., 745224., 758040., 770304., 783156., 795432., 808320., 820608.,
      735132., 747432., 760296., 772608., 785508., 797832., 810768., 823104.,
      737292., 749640., 762552., 774912., 787860., 800232., 813216., 825600.,
      739452., 751848., 764808., 777216., 790212., 802632., 815664., 828096.,
      741612., 754056., 767064., 779520., 792564., 805032., 818112., 830592.,
      743772., 756264., 769320., 781824., 794916., 807432., 820560., 833088.,
      756732., 769512., 782856., 795648., 809028., 821832., 835248., 848064.,
      758892., 771720., 785112., 797952., 811380., 824232., 837696., 850560.,
      761052., 773928., 787368., 800256., 813732., 826632., 840144., 853056.,
      763212., 776136., 789624., 802560., 816084., 829032., 842592., 855552.,
      765372., 778344., 791880., 804864., 818436., 831432., 845040., 858048.,
      767532., 780552., 794136., 807168., 820788., 833832., 847488., 860544.,
      769692., 782760., 796392., 809472., 823140., 836232., 849936., 863040.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      7186986.,  7204644.,  7222302.,  7239960.,  7263324.,  7281000.,
      7298676.,  7316352.,  7339806.,  7357500.,  7375194.,  7392888.,
      7416432.,  7434144.,  7451856.,  7469568.,  10538523., 10564902.,
      10591281., 10617660., 10652382., 10678788., 10705194., 10731600.,
      10766457., 10792890., 10819323., 10845756., 10880748., 10907208.,
      10933668., 10960128., 10571463., 10597950., 10624437., 10650924.,
      10685754., 10712268., 10738782., 10765296., 10800261., 10826802.,
      10853343., 10879884., 10914984., 10941552., 10968120., 10994688.,
      10604403., 10630998., 10657593., 10684188., 10719126., 10745748.,
      10772370., 10798992., 10834065., 10860714., 10887363., 10914012.,
      10949220., 10975896., 11002572., 11029248., 10637343., 10664046.,
      10690749., 10717452., 10752498., 10779228., 10805958., 10832688.,
      10867869., 10894626., 10921383., 10948140., 10983456., 11010240.,
      11037024., 11063808., 6925842.,  6943572.,  6961302.,  6979032.,
      7002180.,  7019928.,  7037676.,  7055424.,  7078662.,  7096428.,
      7114194.,  7131960.,  7155288.,  7173072.,  7190856.,  7208640.,
      6947226.,  6965028.,  6982830.,  7000632.,  7023852.,  7041672.,
      7059492.,  7077312.,  7100622.,  7118460.,  7136298.,  7154136.,
      7177536.,  7195392.,  7213248.,  7231104.,  7457418.,  7475940.,
      7494462.,  7512984.,  7537212.,  7555752.,  7574292.,  7592832.,
      7617150.,  7635708.,  7654266.,  7672824.,  7697232.,  7715808.,
      7734384.,  7752960.,  10933803., 10961478., 10989153., 11016828.,
      11052846., 11080548., 11108250., 11135952., 11172105., 11199834.,
      11227563., 11255292., 11291580., 11319336., 11347092., 11374848.,
      10966743., 10994526., 11022309., 11050092., 11086218., 11114028.,
      11141838., 11169648., 11205909., 11233746., 11261583., 11289420.,
      11325816., 11353680., 11381544., 11409408., 10999683., 11027574.,
      11055465., 11083356., 11119590., 11147508., 11175426., 11203344.,
      11239713., 11267658., 11295603., 11323548., 11360052., 11388024.,
      11415996., 11443968., 11032623., 11060622., 11088621., 11116620.,
      11152962., 11180988., 11209014., 11237040., 11273517., 11301570.,
      11329623., 11357676., 11394288., 11422368., 11450448., 11478528.,
      7182450.,  7201044.,  7219638.,  7238232.,  7262244.,  7280856.,
      7299468.,  7318080.,  7342182.,  7360812.,  7379442.,  7398072.,
      7422264.,  7440912.,  7459560.,  7478208.,  7203834.,  7222500.,
      7241166.,  7259832.,  7283916.,  7302600.,  7321284.,  7339968.,
      7364142.,  7382844.,  7401546.,  7420248.,  7444512.,  7463232.,
      7481952.,  7500672.,  9146616.,  9170160.,  9193704.,  9217248.,
      9247824.,  9271392.,  9294960.,  9318528.,  9349224.,  9372816.,
      9396408.,  9420000.,  9450816.,  9474432.,  9498048.,  9521664.,
      13400772., 13435944., 13471116., 13506288., 13551720., 13586928.,
      13622136., 13657344., 13702956., 13738200., 13773444., 13808688.,
      13854480., 13889760., 13925040., 13960320., 13441236., 13476552.,
      13511868., 13547184., 13592760., 13628112., 13663464., 13698816.,
      13744572., 13779960., 13815348., 13850736., 13896672., 13932096.,
      13967520., 14002944., 13481700., 13517160., 13552620., 13588080.,
      13633800., 13669296., 13704792., 13740288., 13786188., 13821720.,
      13857252., 13892784., 13938864., 13974432., 14010000., 14045568.,
      13522164., 13557768., 13593372., 13628976., 13674840., 13710480.,
      13746120., 13781760., 13827804., 13863480., 13899156., 13934832.,
      13981056., 14016768., 14052480., 14088192., 8796120.,  8819760.,
      8843400.,  8867040.,  8897328.,  8920992.,  8944656.,  8968320.,
      8998728.,  9022416.,  9046104.,  9069792.,  9100320.,  9124032.,
      9147744.,  9171456.,  8822328.,  8846064.,  8869800.,  8893536.,
      8923920.,  8947680.,  8971440.,  8995200.,  9025704.,  9049488.,
      9073272.,  9097056.,  9127680.,  9151488.,  9175296.,  9199104.,
      9479544.,  9504240.,  9528936.,  9553632.,  9585360.,  9610080.,
      9634800.,  9659520.,  9691368.,  9716112.,  9740856.,  9765600.,
      9797568.,  9822336.,  9847104.,  9871872.,  13886340., 13923240.,
      13960140., 13997040., 14044200., 14081136., 14118072., 14155008.,
      14202348., 14239320., 14276292., 14313264., 14360784., 14397792.,
      14434800., 14471808., 13926804., 13963848., 14000892., 14037936.,
      14085240., 14122320., 14159400., 14196480., 14243964., 14281080.,
      14318196., 14355312., 14402976., 14440128., 14477280., 14514432.,
      13967268., 14004456., 14041644., 14078832., 14126280., 14163504.,
      14200728., 14237952., 14285580., 14322840., 14360100., 14397360.,
      14445168., 14482464., 14519760., 14557056., 14007732., 14045064.,
      14082396., 14119728., 14167320., 14204688., 14242056., 14279424.,
      14327196., 14364600., 14402004., 14439408., 14487360., 14524800.,
      14562240., 14599680., 9110616.,  9135408.,  9160200.,  9184992.,
      9216432.,  9241248.,  9266064.,  9290880.,  9322440.,  9347280.,
      9372120.,  9396960.,  9428640.,  9453504.,  9478368.,  9503232.,
      9136824.,  9161712.,  9186600.,  9211488.,  9243024.,  9267936.,
      9292848.,  9317760.,  9349416.,  9374352.,  9399288.,  9424224.,
      9456000.,  9480960.,  9505920.,  9530880.,  6339402.,  6357060.,
      6374718.,  6392376.,  6414876.,  6432552.,  6450228.,  6467904.,
      6490494.,  6508188.,  6525882.,  6543576.,  6566256.,  6583968.,
      6601680.,  6619392.,  9272331.,  9298710.,  9325089.,  9351468.,
      9384894.,  9411300.,  9437706.,  9464112.,  9497673.,  9524106.,
      9550539.,  9576972.,  9610668.,  9637128.,  9663588.,  9690048.,
      9300087.,  9326574.,  9353061.,  9379548.,  9413082.,  9439596.,
      9466110.,  9492624.,  9526293.,  9552834.,  9579375.,  9605916.,
      9639720.,  9666288.,  9692856.,  9719424.,  9327843.,  9354438.,
      9381033.,  9407628.,  9441270.,  9467892.,  9494514.,  9521136.,
      9554913.,  9581562.,  9608211.,  9634860.,  9668772.,  9695448.,
      9722124.,  9748800.,  9355599.,  9382302.,  9409005.,  9435708.,
      9469458.,  9496188.,  9522918.,  9549648.,  9583533.,  9610290.,
      9637047.,  9663804.,  9697824.,  9724608.,  9751392.,  9778176.,
      6074802.,  6092532.,  6110262.,  6127992.,  6150276.,  6168024.,
      6185772.,  6203520.,  6225894.,  6243660.,  6261426.,  6279192.,
      6301656.,  6319440.,  6337224.,  6355008.,  6092730.,  6110532.,
      6128334.,  6146136.,  6168492.,  6186312.,  6204132.,  6221952.,
      6244398.,  6262236.,  6280074.,  6297912.,  6320448.,  6338304.,
      6356160.,  6374016.,  6568362.,  6586884.,  6605406.,  6623928.,
      6647292.,  6665832.,  6684372.,  6702912.,  6726366.,  6744924.,
      6763482.,  6782040.,  6805584.,  6824160.,  6842736.,  6861312.,
      9605403.,  9633078.,  9660753.,  9688428.,  9723150.,  9750852.,
      9778554.,  9806256.,  9841113.,  9868842.,  9896571.,  9924300.,
      9959292.,  9987048.,  10014804., 10042560., 9633159.,  9660942.,
      9688725.,  9716508.,  9751338.,  9779148.,  9806958.,  9834768.,
      9869733.,  9897570.,  9925407.,  9953244.,  9988344.,  10016208.,
      10044072., 10071936., 9660915.,  9688806.,  9716697.,  9744588.,
      9779526.,  9807444.,  9835362.,  9863280.,  9898353.,  9926298.,
      9954243.,  9982188.,  10017396., 10045368., 10073340., 10101312.,
      9688671.,  9716670.,  9744669.,  9772668.,  9807714.,  9835740.,
      9863766.,  9891792.,  9926973.,  9955026.,  9983079.,  10011132.,
      10046448., 10074528., 10102608., 10130688., 6289938.,  6308532.,
      6327126.,  6345720.,  6368868.,  6387480.,  6406092.,  6424704.,
      6447942.,  6466572.,  6485202.,  6503832.,  6527160.,  6545808.,
      6564456.,  6583104.,  6307866.,  6326532.,  6345198.,  6363864.,
      6387084.,  6405768.,  6424452.,  6443136.,  6466446.,  6485148.,
      6503850.,  6522552.,  6545952.,  6564672.,  6583392.,  6602112.,
      6797322.,  6816708.,  6836094.,  6855480.,  6879708.,  6899112.,
      6918516.,  6937920.,  6962238.,  6981660.,  7001082.,  7020504.,
      7044912.,  7064352.,  7083792.,  7103232.,  9938475.,  9967446.,
      9996417.,  10025388., 10061406., 10090404., 10119402., 10148400.,
      10184553., 10213578., 10242603., 10271628., 10307916., 10336968.,
      10366020., 10395072., 9966231.,  9995310.,  10024389., 10053468.,
      10089594., 10118700., 10147806., 10176912., 10213173., 10242306.,
      10271439., 10300572., 10336968., 10366128., 10395288., 10424448.,
      9993987.,  10023174., 10052361., 10081548., 10117782., 10146996.,
      10176210., 10205424., 10241793., 10271034., 10300275., 10329516.,
      10366020., 10395288., 10424556., 10453824., 10021743., 10051038.,
      10080333., 10109628., 10145970., 10175292., 10204614., 10233936.,
      10270413., 10299762., 10329111., 10358460., 10395072., 10424448.,
      10453824., 10483200., 6505074.,  6524532.,  6543990.,  6563448.,
      6587460.,  6606936.,  6626412.,  6645888.,  6669990.,  6689484.,
      6708978.,  6728472.,  6752664.,  6772176.,  6791688.,  6811200.,
      6523002.,  6542532.,  6562062.,  6581592.,  6605676.,  6625224.,
      6644772.,  6664320.,  6688494.,  6708060.,  6727626.,  6747192.,
      6771456.,  6791040.,  6810624.,  6830208.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x12x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1193100., 1202424., 1211748., 1221072., 1231512., 1240848., 1250184.,
      1259520., 1270020., 1279368., 1288716., 1298064., 1308624., 1317984.,
      1327344., 1336704., 1197372., 1206744., 1216116., 1225488., 1235976.,
      1245360., 1254744., 1264128., 1274676., 1284072., 1293468., 1302864.,
      1313472., 1322880., 1332288., 1341696., 1201644., 1211064., 1220484.,
      1229904., 1240440., 1249872., 1259304., 1268736., 1279332., 1288776.,
      1298220., 1307664., 1318320., 1327776., 1337232., 1346688., 1205916.,
      1215384., 1224852., 1234320., 1244904., 1254384., 1263864., 1273344.,
      1283988., 1293480., 1302972., 1312464., 1323168., 1332672., 1342176.,
      1351680., 1210188., 1219704., 1229220., 1238736., 1249368., 1258896.,
      1268424., 1277952., 1288644., 1298184., 1307724., 1317264., 1328016.,
      1337568., 1347120., 1356672., 1214460., 1224024., 1233588., 1243152.,
      1253832., 1263408., 1272984., 1282560., 1293300., 1302888., 1312476.,
      1322064., 1332864., 1342464., 1352064., 1361664., 1218732., 1228344.,
      1237956., 1247568., 1258296., 1267920., 1277544., 1287168., 1297956.,
      1307592., 1317228., 1326864., 1337712., 1347360., 1357008., 1366656.,
      1244364., 1254264., 1264164., 1274064., 1285080., 1294992., 1304904.,
      1314816., 1325892., 1335816., 1345740., 1355664., 1366800., 1376736.,
      1386672., 1396608., 1248636., 1258584., 1268532., 1278480., 1289544.,
      1299504., 1309464., 1319424., 1330548., 1340520., 1350492., 1360464.,
      1371648., 1381632., 1391616., 1401600., 1252908., 1262904., 1272900.,
      1282896., 1294008., 1304016., 1314024., 1324032., 1335204., 1345224.,
      1355244., 1365264., 1376496., 1386528., 1396560., 1406592., 1257180.,
      1267224., 1277268., 1287312., 1298472., 1308528., 1318584., 1328640.,
      1339860., 1349928., 1359996., 1370064., 1381344., 1391424., 1401504.,
      1411584., 1261452., 1271544., 1281636., 1291728., 1302936., 1313040.,
      1323144., 1333248., 1344516., 1354632., 1364748., 1374864., 1386192.,
      1396320., 1406448., 1416576., 1265724., 1275864., 1286004., 1296144.,
      1307400., 1317552., 1327704., 1337856., 1349172., 1359336., 1369500.,
      1379664., 1391040., 1401216., 1411392., 1421568., 1269996., 1280184.,
      1290372., 1300560., 1311864., 1322064., 1332264., 1342464., 1353828.,
      1364040., 1374252., 1384464., 1395888., 1406112., 1416336., 1426560.,
      1295628., 1306104., 1316580., 1327056., 1338648., 1349136., 1359624.,
      1370112., 1381764., 1392264., 1402764., 1413264., 1424976., 1435488.,
      1446000., 1456512., 1299900., 1310424., 1320948., 1331472., 1343112.,
      1353648., 1364184., 1374720., 1386420., 1396968., 1407516., 1418064.,
      1429824., 1440384., 1450944., 1461504., 1304172., 1314744., 1325316.,
      1335888., 1347576., 1358160., 1368744., 1379328., 1391076., 1401672.,
      1412268., 1422864., 1434672., 1445280., 1455888., 1466496., 1308444.,
      1319064., 1329684., 1340304., 1352040., 1362672., 1373304., 1383936.,
      1395732., 1406376., 1417020., 1427664., 1439520., 1450176., 1460832.,
      1471488., 1312716., 1323384., 1334052., 1344720., 1356504., 1367184.,
      1377864., 1388544., 1400388., 1411080., 1421772., 1432464., 1444368.,
      1455072., 1465776., 1476480., 1316988., 1327704., 1338420., 1349136.,
      1360968., 1371696., 1382424., 1393152., 1405044., 1415784., 1426524.,
      1437264., 1449216., 1459968., 1470720., 1481472., 1321260., 1332024.,
      1342788., 1353552., 1365432., 1376208., 1386984., 1397760., 1409700.,
      1420488., 1431276., 1442064., 1454064., 1464864., 1475664., 1486464.,
      1346892., 1357944., 1368996., 1380048., 1392216., 1403280., 1414344.,
      1425408., 1437636., 1448712., 1459788., 1470864., 1483152., 1494240.,
      1505328., 1516416., 1351164., 1362264., 1373364., 1384464., 1396680.,
      1407792., 1418904., 1430016., 1442292., 1453416., 1464540., 1475664.,
      1488000., 1499136., 1510272., 1521408., 1355436., 1366584., 1377732.,
      1388880., 1401144., 1412304., 1423464., 1434624., 1446948., 1458120.,
      1469292., 1480464., 1492848., 1504032., 1515216., 1526400., 1359708.,
      1370904., 1382100., 1393296., 1405608., 1416816., 1428024., 1439232.,
      1451604., 1462824., 1474044., 1485264., 1497696., 1508928., 1520160.,
      1531392., 1363980., 1375224., 1386468., 1397712., 1410072., 1421328.,
      1432584., 1443840., 1456260., 1467528., 1478796., 1490064., 1502544.,
      1513824., 1525104., 1536384., 1368252., 1379544., 1390836., 1402128.,
      1414536., 1425840., 1437144., 1448448., 1460916., 1472232., 1483548.,
      1494864., 1507392., 1518720., 1530048., 1541376., 1372524., 1383864.,
      1395204., 1406544., 1419000., 1430352., 1441704., 1453056., 1465572.,
      1476936., 1488300., 1499664., 1512240., 1523616., 1534992., 1546368.,
      1398156., 1409784., 1421412., 1433040., 1445784., 1457424., 1469064.,
      1480704., 1493508., 1505160., 1516812., 1528464., 1541328., 1552992.,
      1564656., 1576320., 1402428., 1414104., 1425780., 1437456., 1450248.,
      1461936., 1473624., 1485312., 1498164., 1509864., 1521564., 1533264.,
      1546176., 1557888., 1569600., 1581312., 1406700., 1418424., 1430148.,
      1441872., 1454712., 1466448., 1478184., 1489920., 1502820., 1514568.,
      1526316., 1538064., 1551024., 1562784., 1574544., 1586304., 1410972.,
      1422744., 1434516., 1446288., 1459176., 1470960., 1482744., 1494528.,
      1507476., 1519272., 1531068., 1542864., 1555872., 1567680., 1579488.,
      1591296., 1415244., 1427064., 1438884., 1450704., 1463640., 1475472.,
      1487304., 1499136., 1512132., 1523976., 1535820., 1547664., 1560720.,
      1572576., 1584432., 1596288., 1419516., 1431384., 1443252., 1455120.,
      1468104., 1479984., 1491864., 1503744., 1516788., 1528680., 1540572.,
      1552464., 1565568., 1577472., 1589376., 1601280., 1423788., 1435704.,
      1447620., 1459536., 1472568., 1484496., 1496424., 1508352., 1521444.,
      1533384., 1545324., 1557264., 1570416., 1582368., 1594320., 1606272.,
      1449420., 1461624., 1473828., 1486032., 1499352., 1511568., 1523784.,
      1536000., 1549380., 1561608., 1573836., 1586064., 1599504., 1611744.,
      1623984., 1636224., 1453692., 1465944., 1478196., 1490448., 1503816.,
      1516080., 1528344., 1540608., 1554036., 1566312., 1578588., 1590864.,
      1604352., 1616640., 1628928., 1641216., 1457964., 1470264., 1482564.,
      1494864., 1508280., 1520592., 1532904., 1545216., 1558692., 1571016.,
      1583340., 1595664., 1609200., 1621536., 1633872., 1646208., 1462236.,
      1474584., 1486932., 1499280., 1512744., 1525104., 1537464., 1549824.,
      1563348., 1575720., 1588092., 1600464., 1614048., 1626432., 1638816.,
      1651200., 1466508., 1478904., 1491300., 1503696., 1517208., 1529616.,
      1542024., 1554432., 1568004., 1580424., 1592844., 1605264., 1618896.,
      1631328., 1643760., 1656192., 1470780., 1483224., 1495668., 1508112.,
      1521672., 1534128., 1546584., 1559040., 1572660., 1585128., 1597596.,
      1610064., 1623744., 1636224., 1648704., 1661184., 1475052., 1487544.,
      1500036., 1512528., 1526136., 1538640., 1551144., 1563648., 1577316.,
      1589832., 1602348., 1614864., 1628592., 1641120., 1653648., 1666176.,
      1500684., 1513464., 1526244., 1539024., 1552920., 1565712., 1578504.,
      1591296., 1605252., 1618056., 1630860., 1643664., 1657680., 1670496.,
      1683312., 1696128., 1504956., 1517784., 1530612., 1543440., 1557384.,
      1570224., 1583064., 1595904., 1609908., 1622760., 1635612., 1648464.,
      1662528., 1675392., 1688256., 1701120., 1509228., 1522104., 1534980.,
      1547856., 1561848., 1574736., 1587624., 1600512., 1614564., 1627464.,
      1640364., 1653264., 1667376., 1680288., 1693200., 1706112., 1513500.,
      1526424., 1539348., 1552272., 1566312., 1579248., 1592184., 1605120.,
      1619220., 1632168., 1645116., 1658064., 1672224., 1685184., 1698144.,
      1711104., 1517772., 1530744., 1543716., 1556688., 1570776., 1583760.,
      1596744., 1609728., 1623876., 1636872., 1649868., 1662864., 1677072.,
      1690080., 1703088., 1716096., 1522044., 1535064., 1548084., 1561104.,
      1575240., 1588272., 1601304., 1614336., 1628532., 1641576., 1654620.,
      1667664., 1681920., 1694976., 1708032., 1721088., 1526316., 1539384.,
      1552452., 1565520., 1579704., 1592784., 1605864., 1618944., 1633188.,
      1646280., 1659372., 1672464., 1686768., 1699872., 1712976., 1726080.};
  const std::array<int, 4> in_shape = {{3, 14, 12, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      269775., 270504., 354618., 355572., 262026., 262728., 263430.,
      279981., 280710., 367974., 368928., 271854., 272556., 273258.,
      343740., 344640., 451544., 452720., 333408., 334272., 335136.,
      356340., 357240., 468008., 469184., 345504., 346368., 347232.,
      238779., 239400., 313290., 314100., 231030., 231624., 232218.,
      247473., 248094., 324630., 325440., 239346., 239940., 240534.,
      256167., 256788., 335970., 336780., 247662., 248256., 248850.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x14x1x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      24326., 24404., 24482., 24560., 24638., 24716., 24794., 25418., 25496.,
      25574., 25652., 25730., 25808., 25886., 26510., 26588., 26666., 26744.,
      26822., 26900., 26978., 27602., 27680., 27758., 27836., 27914., 27992.,
      28070., 28694., 28772., 28850., 28928., 29006., 29084., 29162., 29786.,
      29864., 29942., 30020., 30098., 30176., 30254., 30878., 30956., 31034.,
      31112., 31190., 31268., 31346.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      531801., 539550., 533232., 541008., 698904., 709236., 700776., 711144.,
      516303., 524052., 517680., 525456., 519057., 526860., 551835., 559962.,
      553266., 561420., 725112., 735948., 726984., 737856., 535581., 543708.,
      536958., 545112., 538335., 546516., 677148., 687480., 678912., 689280.,
      889312., 903088., 891616., 905440., 656484., 666816., 658176., 668544.,
      659868., 670272., 701844., 712680., 703608., 714480., 921568., 936016.,
      923872., 938368., 680172., 691008., 681864., 692736., 683556., 694464.,
      469809., 477558., 471024., 478800., 616248., 626580., 617832., 628200.,
      454311., 462060., 455472., 463248., 456633., 464436., 486819., 494946.,
      488034., 496188., 638424., 649260., 640008., 650880., 470565., 478692.,
      471726., 479880., 472887., 481068., 503829., 512334., 505044., 513576.,
      660600., 671940., 662184., 673560., 486819., 495324., 487980., 496512.,
      489141., 497700.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x14x1x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      45928., 48652., 46072., 48808., 46216., 48964., 46360., 49120., 46504.,
      49276., 46648., 49432., 46792., 49588., 47944., 50836., 48088., 50992.,
      48232., 51148., 48376., 51304., 48520., 51460., 48664., 51616., 48808.,
      51772., 49960., 53020., 50104., 53176., 50248., 53332., 50392., 53488.,
      50536., 53644., 50680., 53800., 50824., 53956., 51976., 55204., 52120.,
      55360., 52264., 55516., 52408., 55672., 52552., 55828., 52696., 55984.,
      52840., 56140., 53992., 57388., 54136., 57544., 54280., 57700., 54424.,
      57856., 54568., 58012., 54712., 58168., 54856., 58324., 56008., 59572.,
      56152., 59728., 56296., 59884., 56440., 60040., 56584., 60196., 56728.,
      60352., 56872., 60508., 58024., 61756., 58168., 61912., 58312., 62068.,
      58456., 62224., 58600., 62380., 58744., 62536., 58888., 62692.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1055853., 1063602., 1071351., 1079100., 1058688., 1066464., 1074240.,
      1082016., 1387476., 1397808., 1408140., 1418472., 1391184., 1401552.,
      1411920., 1422288., 1024857., 1032606., 1040355., 1048104., 1027584.,
      1035360., 1043136., 1050912., 1030311., 1038114., 1045917., 1053720.,
      1095543., 1103670., 1111797., 1119924., 1098378., 1106532., 1114686.,
      1122840., 1439388., 1450224., 1461060., 1471896., 1443096., 1453968.,
      1464840., 1475712., 1063035., 1071162., 1079289., 1087416., 1065762.,
      1073916., 1082070., 1090224., 1068489., 1076670., 1084851., 1093032.,
      1343964., 1354296., 1364628., 1374960., 1347456., 1357824., 1368192.,
      1378560., 1764848., 1778624., 1792400., 1806176., 1769408., 1783232.,
      1797056., 1810880., 1302636., 1312968., 1323300., 1333632., 1305984.,
      1316352., 1326720., 1337088., 1309332., 1319736., 1330140., 1340544.,
      1392852., 1403688., 1414524., 1425360., 1396344., 1407216., 1418088.,
      1428960., 1828688., 1843136., 1857584., 1872032., 1833248., 1847744.,
      1862240., 1876736., 1349508., 1360344., 1371180., 1382016., 1352856.,
      1363728., 1374600., 1385472., 1356204., 1367112., 1378020., 1388928.,
      931869.,  939618.,  947367.,  955116.,  934272.,  942048.,  949824.,
      957600.,  1222164., 1232496., 1242828., 1253160., 1225296., 1235664.,
      1246032., 1256400., 900873.,  908622.,  916371.,  924120.,  903168.,
      910944.,  918720.,  926496.,  905463.,  913266.,  921069.,  928872.,
      965511.,  973638.,  981765.,  989892.,  967914.,  976068.,  984222.,
      992376.,  1266012., 1276848., 1287684., 1298520., 1269144., 1280016.,
      1290888., 1301760., 933003.,  941130.,  949257.,  957384.,  935298.,
      943452.,  951606.,  959760.,  937593.,  945774.,  953955.,  962136.,
      999153.,  1007658., 1016163., 1024668., 1001556., 1010088., 1018620.,
      1027152., 1309860., 1321200., 1332540., 1343880., 1312992., 1324368.,
      1335744., 1347120., 965133.,  973638.,  982143.,  990648.,  967428.,
      975960.,  984492.,  993024.,  969723.,  978282.,  986841.,  995400.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x14x1x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      89132.,  91856.,  94580.,  97304.,  89408.,  92144.,  94880.,  97616.,
      89684.,  92432.,  95180.,  97928.,  89960.,  92720.,  95480.,  98240.,
      90236.,  93008.,  95780.,  98552.,  90512.,  93296.,  96080.,  98864.,
      90788.,  93584.,  96380.,  99176.,  92996.,  95888.,  98780.,  101672.,
      93272.,  96176.,  99080.,  101984., 93548.,  96464.,  99380.,  102296.,
      93824.,  96752.,  99680.,  102608., 94100.,  97040.,  99980.,  102920.,
      94376.,  97328.,  100280., 103232., 94652.,  97616.,  100580., 103544.,
      96860.,  99920.,  102980., 106040., 97136.,  100208., 103280., 106352.,
      97412.,  100496., 103580., 106664., 97688.,  100784., 103880., 106976.,
      97964.,  101072., 104180., 107288., 98240.,  101360., 104480., 107600.,
      98516.,  101648., 104780., 107912., 100724., 103952., 107180., 110408.,
      101000., 104240., 107480., 110720., 101276., 104528., 107780., 111032.,
      101552., 104816., 108080., 111344., 101828., 105104., 108380., 111656.,
      102104., 105392., 108680., 111968., 102380., 105680., 108980., 112280.,
      104588., 107984., 111380., 114776., 104864., 108272., 111680., 115088.,
      105140., 108560., 111980., 115400., 105416., 108848., 112280., 115712.,
      105692., 109136., 112580., 116024., 105968., 109424., 112880., 116336.,
      106244., 109712., 113180., 116648., 108452., 112016., 115580., 119144.,
      108728., 112304., 115880., 119456., 109004., 112592., 116180., 119768.,
      109280., 112880., 116480., 120080., 109556., 113168., 116780., 120392.,
      109832., 113456., 117080., 120704., 110108., 113744., 117380., 121016.,
      112316., 116048., 119780., 123512., 112592., 116336., 120080., 123824.,
      112868., 116624., 120380., 124136., 113144., 116912., 120680., 124448.,
      113420., 117200., 120980., 124760., 113696., 117488., 121280., 125072.,
      113972., 117776., 121580., 125384.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 1}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1062171., 1079100., 1065033., 1082016., 1395936., 1418472., 1399680.,
      1422288., 1031229., 1048104., 1033983., 1050912., 1036737., 1053720.,
      1102239., 1119924., 1105101., 1122840., 1448352., 1471896., 1452096.,
      1475712., 1069785., 1087416., 1072539., 1090224., 1075293., 1093032.,
      1352532., 1374960., 1356060., 1378560., 1776320., 1806176., 1780928.,
      1810880., 1311276., 1333632., 1314660., 1337088., 1318044., 1340544.,
      1401924., 1425360., 1405452., 1428960., 1840832., 1872032., 1845440.,
      1876736., 1358652., 1382016., 1362036., 1385472., 1365420., 1388928.,
      938403.,  955116.,  940833.,  957600.,  1230912., 1253160., 1234080.,
      1256400., 907461.,  924120.,  909783.,  926496.,  912105.,  928872.,
      972423.,  989892.,  974853.,  992376.,  1275264., 1298520., 1278432.,
      1301760., 939969.,  957384.,  942291.,  959760.,  944613.,  962136.,
      1006443., 1024668., 1008873., 1027152., 1319616., 1343880., 1322784.,
      1347120., 972477.,  990648.,  974799.,  993024.,  977121.,  995400.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x14x2x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      91712.,  97304.,  92000.,  97616.,  92288.,  97928.,  92576.,  98240.,
      92864.,  98552.,  93152.,  98864.,  93440.,  99176.,  95744.,  101672.,
      96032.,  101984., 96320.,  102296., 96608.,  102608., 96896.,  102920.,
      97184.,  103232., 97472.,  103544., 99776.,  106040., 100064., 106352.,
      100352., 106664., 100640., 106976., 100928., 107288., 101216., 107600.,
      101504., 107912., 103808., 110408., 104096., 110720., 104384., 111032.,
      104672., 111344., 104960., 111656., 105248., 111968., 105536., 112280.,
      107840., 114776., 108128., 115088., 108416., 115400., 108704., 115712.,
      108992., 116024., 109280., 116336., 109568., 116648., 111872., 119144.,
      112160., 119456., 112448., 119768., 112736., 120080., 113024., 120392.,
      113312., 120704., 113600., 121016., 115904., 123512., 116192., 123824.,
      116480., 124136., 116768., 124448., 117056., 124760., 117344., 125072.,
      117632., 125384.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      2108871., 2124342., 2142702., 2158200., 2114541., 2130066., 2148480.,
      2164032., 2771244., 2791872., 2816280., 2836944., 2778660., 2799360.,
      2823840., 2844576., 2046987., 2062458., 2080710., 2096208., 2052441.,
      2067966., 2086272., 2101824., 2057895., 2073474., 2091834., 2107440.,
      2188251., 2204478., 2223594., 2239848., 2193921., 2210202., 2229372.,
      2245680., 2875068., 2896704., 2922120., 2943792., 2882484., 2904192.,
      2929680., 2951424., 2123343., 2139570., 2158578., 2174832., 2128797.,
      2145078., 2164140., 2180448., 2134251., 2150586., 2169702., 2186064.,
      2684436., 2705064., 2729256., 2749920., 2691420., 2712120., 2736384.,
      2757120., 3525136., 3552640., 3584800., 3612352., 3534256., 3561856.,
      3594112., 3621760., 2601924., 2622552., 2646600., 2667264., 2608620.,
      2629320., 2653440., 2674176., 2615316., 2636088., 2660280., 2681088.,
      2782212., 2803848., 2829048., 2850720., 2789196., 2810904., 2836176.,
      2857920., 3652816., 3681664., 3715168., 3744064., 3661936., 3690880.,
      3724480., 3753472., 2695668., 2717304., 2742360., 2764032., 2702364.,
      2724072., 2749200., 2770944., 2709060., 2730840., 2756040., 2777856.,
      1861335., 1876806., 1894734., 1910232., 1866141., 1881666., 1899648.,
      1915200., 2441196., 2461824., 2485656., 2506320., 2447460., 2468160.,
      2492064., 2512800., 1799451., 1814922., 1832742., 1848240., 1804041.,
      1819566., 1837440., 1852992., 1808631., 1824210., 1842138., 1857744.,
      1928619., 1944846., 1963530., 1979784., 1933425., 1949706., 1968444.,
      1984752., 2528892., 2550528., 2575368., 2597040., 2535156., 2556864.,
      2581776., 2603520., 1863711., 1879938., 1898514., 1914768., 1868301.,
      1884582., 1903212., 1919520., 1872891., 1889226., 1907910., 1924272.,
      1995903., 2012886., 2032326., 2049336., 2000709., 2017746., 2037240.,
      2054304., 2616588., 2639232., 2665080., 2687760., 2622852., 2645568.,
      2671488., 2694240., 1927971., 1944954., 1964286., 1981296., 1932561.,
      1949598., 1968984., 1986048., 1937151., 1954242., 1973682., 1990800.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x14x2x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      177988., 183424., 189160., 194608., 178540., 184000., 189760., 195232.,
      179092., 184576., 190360., 195856., 179644., 185152., 190960., 196480.,
      180196., 185728., 191560., 197104., 180748., 186304., 192160., 197728.,
      181300., 186880., 192760., 198352., 185716., 191488., 197560., 203344.,
      186268., 192064., 198160., 203968., 186820., 192640., 198760., 204592.,
      187372., 193216., 199360., 205216., 187924., 193792., 199960., 205840.,
      188476., 194368., 200560., 206464., 189028., 194944., 201160., 207088.,
      193444., 199552., 205960., 212080., 193996., 200128., 206560., 212704.,
      194548., 200704., 207160., 213328., 195100., 201280., 207760., 213952.,
      195652., 201856., 208360., 214576., 196204., 202432., 208960., 215200.,
      196756., 203008., 209560., 215824., 201172., 207616., 214360., 220816.,
      201724., 208192., 214960., 221440., 202276., 208768., 215560., 222064.,
      202828., 209344., 216160., 222688., 203380., 209920., 216760., 223312.,
      203932., 210496., 217360., 223936., 204484., 211072., 217960., 224560.,
      208900., 215680., 222760., 229552., 209452., 216256., 223360., 230176.,
      210004., 216832., 223960., 230800., 210556., 217408., 224560., 231424.,
      211108., 217984., 225160., 232048., 211660., 218560., 225760., 232672.,
      212212., 219136., 226360., 233296., 216628., 223744., 231160., 238288.,
      217180., 224320., 231760., 238912., 217732., 224896., 232360., 239536.,
      218284., 225472., 232960., 240160., 218836., 226048., 233560., 240784.,
      219388., 226624., 234160., 241408., 219940., 227200., 234760., 242032.,
      224356., 231808., 239560., 247024., 224908., 232384., 240160., 247648.,
      225460., 232960., 240760., 248272., 226012., 233536., 241360., 248896.,
      226564., 234112., 241960., 249520., 227116., 234688., 242560., 250144.,
      227668., 235264., 243160., 250768.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      4202271., 4217742., 4233213., 4248684., 4269906., 4285404., 4300902.,
      4316400., 4213557., 4229082., 4244607., 4260132., 4281408., 4296960.,
      4312512., 4328064., 5521860., 5542488., 5563116., 5583744., 5611896.,
      5632560., 5653224., 5673888., 5536620., 5557320., 5578020., 5598720.,
      5626944., 5647680., 5668416., 5689152., 4078503., 4093974., 4109445.,
      4124916., 4145922., 4161420., 4176918., 4192416., 4089357., 4104882.,
      4120407., 4135932., 4156992., 4172544., 4188096., 4203648., 4100211.,
      4115790., 4131369., 4146948., 4168062., 4183668., 4199274., 4214880.,
      4360275., 4376502., 4392729., 4408956., 4430934., 4447188., 4463442.,
      4479696., 4371561., 4387842., 4404123., 4420404., 4442436., 4458744.,
      4475052., 4491360., 5728500., 5750136., 5771772., 5793408., 5822568.,
      5844240., 5865912., 5887584., 5743260., 5764968., 5786676., 5808384.,
      5837616., 5859360., 5881104., 5902848., 4230459., 4246686., 4262913.,
      4279140., 4300902., 4317156., 4333410., 4349664., 4241313., 4257594.,
      4273875., 4290156., 4311972., 4328280., 4344588., 4360896., 4252167.,
      4268502., 4284837., 4301172., 4323042., 4339404., 4355766., 4372128.,
      5348244., 5368872., 5389500., 5410128., 5437848., 5458512., 5479176.,
      5499840., 5362140., 5382840., 5403540., 5424240., 5452032., 5472768.,
      5493504., 5514240., 7022768., 7050272., 7077776., 7105280., 7142048.,
      7169600., 7197152., 7224704., 7040912., 7068512., 7096112., 7123712.,
      7160576., 7188224., 7215872., 7243520., 5183220., 5203848., 5224476.,
      5245104., 5272536., 5293200., 5313864., 5334528., 5196540., 5217240.,
      5237940., 5258640., 5286144., 5306880., 5327616., 5348352., 5209860.,
      5230632., 5251404., 5272176., 5299752., 5320560., 5341368., 5362176.,
      5542788., 5564424., 5586060., 5607696., 5636424., 5658096., 5679768.,
      5701440., 5556684., 5578392., 5600100., 5621808., 5650608., 5672352.,
      5694096., 5715840., 7276784., 7305632., 7334480., 7363328., 7401440.,
      7430336., 7459232., 7488128., 7294928., 7323872., 7352816., 7381760.,
      7419968., 7448960., 7477952., 7506944., 5369700., 5391336., 5412972.,
      5434608., 5463048., 5484720., 5506392., 5528064., 5383020., 5404728.,
      5426436., 5448144., 5476656., 5498400., 5520144., 5541888., 5396340.,
      5418120., 5439900., 5461680., 5490264., 5512080., 5533896., 5555712.,
      3707199., 3722670., 3738141., 3753612., 3773970., 3789468., 3804966.,
      3820464., 3716757., 3732282., 3747807., 3763332., 3783744., 3799296.,
      3814848., 3830400., 4861764., 4882392., 4903020., 4923648., 4950648.,
      4971312., 4991976., 5012640., 4874220., 4894920., 4915620., 4936320.,
      4963392., 4984128., 5004864., 5025600., 3583431., 3598902., 3614373.,
      3629844., 3649986., 3665484., 3680982., 3696480., 3592557., 3608082.,
      3623607., 3639132., 3659328., 3674880., 3690432., 3705984., 3601683.,
      3617262., 3632841., 3648420., 3668670., 3684276., 3699882., 3715488.,
      3841011., 3857238., 3873465., 3889692., 3910806., 3927060., 3943314.,
      3959568., 3850569., 3866850., 3883131., 3899412., 3920580., 3936888.,
      3953196., 3969504., 5036148., 5057784., 5079420., 5101056., 5129064.,
      5150736., 5172408., 5194080., 5048604., 5070312., 5092020., 5113728.,
      5141808., 5163552., 5185296., 5207040., 3711195., 3727422., 3743649.,
      3759876., 3780774., 3797028., 3813282., 3829536., 3720321., 3736602.,
      3752883., 3769164., 3790116., 3806424., 3822732., 3839040., 3729447.,
      3745782., 3762117., 3778452., 3799458., 3815820., 3832182., 3848544.,
      3974823., 3991806., 4008789., 4025772., 4047642., 4064652., 4081662.,
      4098672., 3984381., 4001418., 4018455., 4035492., 4057416., 4074480.,
      4091544., 4108608., 5210532., 5233176., 5255820., 5278464., 5307480.,
      5330160., 5352840., 5375520., 5222988., 5245704., 5268420., 5291136.,
      5320224., 5342976., 5365728., 5388480., 3838959., 3855942., 3872925.,
      3889908., 3911562., 3928572., 3945582., 3962592., 3848085., 3865122.,
      3882159., 3899196., 3920904., 3937968., 3955032., 3972096., 3857211.,
      3874302., 3891393., 3908484., 3930246., 3947364., 3964482., 3981600.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x14x2x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      350540., 355976., 361412., 366848., 372872., 378320., 383768., 389216.,
      351620., 357080., 362540., 368000., 374048., 379520., 384992., 390464.,
      352700., 358184., 363668., 369152., 375224., 380720., 386216., 391712.,
      353780., 359288., 364796., 370304., 376400., 381920., 387440., 392960.,
      354860., 360392., 365924., 371456., 377576., 383120., 388664., 394208.,
      355940., 361496., 367052., 372608., 378752., 384320., 389888., 395456.,
      357020., 362600., 368180., 373760., 379928., 385520., 391112., 396704.,
      365660., 371432., 377204., 382976., 389336., 395120., 400904., 406688.,
      366740., 372536., 378332., 384128., 390512., 396320., 402128., 407936.,
      367820., 373640., 379460., 385280., 391688., 397520., 403352., 409184.,
      368900., 374744., 380588., 386432., 392864., 398720., 404576., 410432.,
      369980., 375848., 381716., 387584., 394040., 399920., 405800., 411680.,
      371060., 376952., 382844., 388736., 395216., 401120., 407024., 412928.,
      372140., 378056., 383972., 389888., 396392., 402320., 408248., 414176.,
      380780., 386888., 392996., 399104., 405800., 411920., 418040., 424160.,
      381860., 387992., 394124., 400256., 406976., 413120., 419264., 425408.,
      382940., 389096., 395252., 401408., 408152., 414320., 420488., 426656.,
      384020., 390200., 396380., 402560., 409328., 415520., 421712., 427904.,
      385100., 391304., 397508., 403712., 410504., 416720., 422936., 429152.,
      386180., 392408., 398636., 404864., 411680., 417920., 424160., 430400.,
      387260., 393512., 399764., 406016., 412856., 419120., 425384., 431648.,
      395900., 402344., 408788., 415232., 422264., 428720., 435176., 441632.,
      396980., 403448., 409916., 416384., 423440., 429920., 436400., 442880.,
      398060., 404552., 411044., 417536., 424616., 431120., 437624., 444128.,
      399140., 405656., 412172., 418688., 425792., 432320., 438848., 445376.,
      400220., 406760., 413300., 419840., 426968., 433520., 440072., 446624.,
      401300., 407864., 414428., 420992., 428144., 434720., 441296., 447872.,
      402380., 408968., 415556., 422144., 429320., 435920., 442520., 449120.,
      411020., 417800., 424580., 431360., 438728., 445520., 452312., 459104.,
      412100., 418904., 425708., 432512., 439904., 446720., 453536., 460352.,
      413180., 420008., 426836., 433664., 441080., 447920., 454760., 461600.,
      414260., 421112., 427964., 434816., 442256., 449120., 455984., 462848.,
      415340., 422216., 429092., 435968., 443432., 450320., 457208., 464096.,
      416420., 423320., 430220., 437120., 444608., 451520., 458432., 465344.,
      417500., 424424., 431348., 438272., 445784., 452720., 459656., 466592.,
      426140., 433256., 440372., 447488., 455192., 462320., 469448., 476576.,
      427220., 434360., 441500., 448640., 456368., 463520., 470672., 477824.,
      428300., 435464., 442628., 449792., 457544., 464720., 471896., 479072.,
      429380., 436568., 443756., 450944., 458720., 465920., 473120., 480320.,
      430460., 437672., 444884., 452096., 459896., 467120., 474344., 481568.,
      431540., 438776., 446012., 453248., 461072., 468320., 475568., 482816.,
      432620., 439880., 447140., 454400., 462248., 469520., 476792., 484064.,
      441260., 448712., 456164., 463616., 471656., 479120., 486584., 494048.,
      442340., 449816., 457292., 464768., 472832., 480320., 487808., 495296.,
      443420., 450920., 458420., 465920., 474008., 481520., 489032., 496544.,
      444500., 452024., 459548., 467072., 475184., 482720., 490256., 497792.,
      445580., 453128., 460676., 468224., 476360., 483920., 491480., 499040.,
      446660., 454232., 461804., 469376., 477536., 485120., 492704., 500288.,
      447740., 455336., 462932., 470528., 478712., 486320., 493928., 501536.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 2}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      3078267., 3105900., 3133587., 3161328., 3089607., 3117348., 3145143.,
      3172992., 4039644., 4076416., 4113260., 4150176., 4054476., 4091392.,
      4128380., 4165440., 2979183., 3006708., 3034287., 3061920., 2990091.,
      3017724., 3045411., 3073152., 3000999., 3028740., 3056535., 3084384.,
      3237027., 3266172., 3295371., 3324624., 3248367., 3277620., 3306927.,
      3336288., 4247292., 4286080., 4324940., 4363872., 4262124., 4301056.,
      4340060., 4379136., 3131895., 3160932., 3190023., 3219168., 3142803.,
      3171948., 3201147., 3230400., 3153711., 3182964., 3212271., 3241632.,
      3874436., 3910992., 3947620., 3984320., 3888404., 3925104., 3961876.,
      3998720., 4846160., 4893440., 4940816., 4988288., 4864400., 4911872.,
      4959440., 5007104., 3742324., 3778736., 3815220., 3851776., 3755716.,
      3792272., 3828900., 3865600., 3431188., 3465840., 3500564., 3535360.,
      3385956., 3420432., 3454980., 3489600., 3399924., 3434544., 3469236.,
      3504000., 4433872., 4479744., 4525712., 4571776., 4452112., 4498176.,
      4544336., 4590592., 3262164., 3296496., 3330900., 3365376., 3275556.,
      3310032., 3344580., 3379200., 3288948., 3323568., 3358260., 3393024.,
      2681931., 2709132., 2736387., 2763696., 2691543., 2718852., 2746215.,
      2773632., 3511196., 3547392., 3583660., 3620000., 3523724., 3560064.,
      3596476., 3632960., 2582847., 2609940., 2637087., 2664288., 2592027.,
      2619228., 2646483., 2673792., 2601207., 2628516., 2655879., 2683296.,
      2816499., 2845212., 2873979., 2902800., 2826111., 2854932., 2883807.,
      2912736., 3686588., 3724800., 3763084., 3801440., 3699116., 3737472.,
      3775900., 3814400., 2711367., 2739972., 2768631., 2797344., 2720547.,
      2749260., 2778027., 2806848., 2729727., 2758548., 2787423., 2816352.,
      2629531., 2657708., 2685939., 2714224., 2639143., 2667428., 2695767.,
      2724160., 3227100., 3263232., 3299436., 3335712., 3239628., 3275904.,
      3312252., 3348672., 2526543., 2554612., 2582735., 2610912., 2535723.,
      2563900., 2592131., 2620416., 2239751., 2265988., 2292279., 2318624.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x14x4x1) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      355700., 366848., 378020., 389216., 356804., 368000., 379220., 390464.,
      357908., 369152., 380420., 391712., 359012., 370304., 381620., 392960.,
      360116., 371456., 382820., 394208., 361220., 372608., 384020., 395456.,
      362324., 373760., 385220., 396704., 371156., 382976., 394820., 406688.,
      372260., 384128., 396020., 407936., 373364., 385280., 397220., 409184.,
      374468., 386432., 398420., 410432., 375572., 387584., 399620., 411680.,
      376676., 388736., 400820., 412928., 377780., 389888., 402020., 414176.,
      386612., 399104., 411620., 424160., 387716., 400256., 412820., 425408.,
      388820., 401408., 414020., 426656., 389924., 402560., 415220., 427904.,
      391028., 403712., 416420., 429152., 392132., 404864., 417620., 430400.,
      393236., 406016., 418820., 431648., 402068., 415232., 428420., 441632.,
      403172., 416384., 429620., 442880., 404276., 417536., 430820., 444128.,
      405380., 418688., 432020., 445376., 406484., 419840., 433220., 446624.,
      407588., 420992., 434420., 447872., 408692., 422144., 435620., 449120.,
      417524., 431360., 445220., 459104., 418628., 432512., 446420., 460352.,
      419732., 433664., 447620., 461600., 420836., 434816., 448820., 462848.,
      329780., 341760., 353764., 365792., 330884., 342912., 354964., 367040.,
      331988., 344064., 356164., 368288., 256852., 267264., 277700., 288160.,
      257956., 268416., 278900., 289408., 259060., 269568., 280100., 290656.,
      260164., 270720., 281300., 291904., 261268., 271872., 282500., 293152.,
      262372., 273024., 283700., 294400., 263476., 274176., 284900., 295648.,
      272308., 283392., 294500., 305632., 273412., 284544., 295700., 306880.,
      274516., 285696., 296900., 308128., 275620., 286848., 298100., 309376.,
      276724., 288000., 299300., 310624., 277828., 289152., 300500., 311872.,
      278932., 290304., 301700., 313120.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 1;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      6131763., 6156534., 6187002., 6211800.,  6242349., 6267174., 6297804.,
      6322656., 6154335., 6179214., 6209790.,  6234696., 6265353., 6290286.,
      6321024., 6345984., 8046260., 8079288.,  8119768., 8152832., 8193420.,
      8226520., 8267216., 8300352., 8075780.,  8108952., 8149576., 8182784.,
      8223516., 8256760., 8297600., 8330880.,  5933595., 5958366., 5988618.,
      6013416., 6043749., 6068574., 6098988.,  6123840., 5955303., 5980182.,
      6010542., 6035448., 6065889., 6090822.,  6121344., 6146304., 5977011.,
      6001998., 6032466., 6057480., 6088029.,  6113070., 6143700., 6168768.,
      6447771., 6474054., 6506034., 6532344.,  6564405., 6590742., 6622884.,
      6649248., 6470343., 6496734., 6528822.,  6555240., 6587409., 6613854.,
      6646104., 6672576., 8459540., 8494584.,  8537080., 8572160., 8614764.,
      8649880., 8692592., 8727744., 8489060.,  8524248., 8566888., 8602112.,
      8644860., 8680120., 8722976., 8758272.,  6237507., 6263790., 6295554.,
      6321864., 6353709., 6380046., 6411972.,  6438336., 6259215., 6285606.,
      6317478., 6343896., 6375849., 6402294.,  6434328., 6460800., 6280923.,
      6307422., 6339402., 6365928., 6397989.,  6424542., 6456684., 6483264.,
      7715844., 7748872., 7788920., 7821984.,  7862140., 7895240., 7935504.,
      7968640., 7743636., 7776808., 7817000.,  7850208., 7890508., 7923752.,
      7964160., 7997440., 9649648., 9692320.,  9744160., 9786880., 9838864.,
      9881632., 9933760., 9976576., 9685936.,  9728800., 9780832., 9823744.,
      9875920., 9918880., 9971200., 10014208., 7451620., 7484648., 7524408.,
      7557472., 7597340., 7630440., 7670416.,  7703552., 7478260., 7511432.,
      7551336., 7584544., 7624556., 7657800.,  7697920., 7731200., 6831108.,
      6862376., 6900376., 6931680., 6969788.,  7001128., 7039344., 7070720.,
      6740964., 6771912., 6809880., 6840864.,  6878940., 6909960., 6948144.,
      6979200., 6768756., 6799848., 6837960.,  6869088., 6907308., 6938472.,
      6976800., 7008000., 8826480., 8867744.,  8918176., 8959488., 9010064.,
      9051424., 9102144., 9143552., 8862768.,  8904224., 8954848., 8996352.,
      9047120., 9088672., 9139584., 9181184.,  6493380., 6524328., 6562008.,
      6592992., 6630780., 6661800., 6699696.,  6730752., 6520020., 6551112.,
      6588936., 6620064., 6657996., 6689160.,  6727200., 6758400., 6546660.,
      6577896., 6615864., 6647136., 6685212.,  6716520., 6754704., 6786048.,
      5339091., 5363862., 5393466., 5418264.,  5447949., 5472774., 5502540.,
      5527392., 5358207., 5383086., 5412798.,  5437704., 5467497., 5492430.,
      5522304., 5547264., 6989364., 7022392.,  7061720., 7094784., 7134220.,
      7167320., 7206864., 7240000., 7014276.,  7047448., 7086920., 7120128.,
      7159708., 7192952., 7232640., 7265920.,  5140923., 5165694., 5195082.,
      5219880., 5249349., 5274174., 5303724.,  5328576., 5159175., 5184054.,
      5213550., 5238456., 5268033., 5292966.,  5322624., 5347584., 5177427.,
      5202414., 5232018., 5257032., 5286717.,  5311758., 5341524., 5366592.,
      5606715., 5632998., 5664114., 5690424.,  5721621., 5747958., 5779236.,
      5805600., 5625831., 5652222., 5683446.,  5709864., 5741169., 5767614.,
      5799000., 5825472., 7338132., 7373176.,  7414520., 7449600., 7491052.,
      7526168., 7567728., 7602880., 7363044.,  7398232., 7439720., 7474944.,
      7516540., 7551800., 7593504., 7628800.,  5396451., 5422734., 5453634.,
      5479944., 5510925., 5537262., 5568324.,  5594688., 5414703., 5441094.,
      5472102., 5498520., 5529609., 5556054.,  5587224., 5613696., 5432955.,
      5459454., 5490570., 5517096., 5548293.,  5574846., 5606124., 5632704.,
      5233315., 5259062., 5289642., 5315416.,  5346077., 5371878., 5402620.,
      5428448., 5252431., 5278286., 5308974.,  5334856., 5365625., 5391534.,
      5422384., 5448320., 6421236., 6454200.,  6493464., 6526464., 6565836.,
      6598872., 6638352., 6671424., 6446148.,  6479256., 6518664., 6551808.,
      6591324., 6624504., 6664128., 6697344.,  5027339., 5053086., 5083450.,
      5109224., 5139669., 5165470., 5195996.,  5221824., 5045591., 5071446.,
      5101918., 5127800., 5158353., 5184262.,  5214896., 5240832., 4455587.,
      4479502., 4508034., 4531976., 4560589.,  4584558., 4613252., 4637248.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x14x4x2) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      700540., 711400., 722824., 733696., 745156., 756040., 767536., 778432.,
      702700., 713608., 725080., 736000., 747508., 758440., 769984., 780928.,
      704860., 715816., 727336., 738304., 749860., 760840., 772432., 783424.,
      707020., 718024., 729592., 740608., 752212., 763240., 774880., 785920.,
      709180., 720232., 731848., 742912., 754564., 765640., 777328., 788416.,
      711340., 722440., 734104., 745216., 756916., 768040., 779776., 790912.,
      713500., 724648., 736360., 747520., 759268., 770440., 782224., 793408.,
      730780., 742312., 754408., 765952., 778084., 789640., 801808., 813376.,
      732940., 744520., 756664., 768256., 780436., 792040., 804256., 815872.,
      735100., 746728., 758920., 770560., 782788., 794440., 806704., 818368.,
      737260., 748936., 761176., 772864., 785140., 796840., 809152., 820864.,
      739420., 751144., 763432., 775168., 787492., 799240., 811600., 823360.,
      741580., 753352., 765688., 777472., 789844., 801640., 814048., 825856.,
      743740., 755560., 767944., 779776., 792196., 804040., 816496., 828352.,
      761020., 773224., 785992., 798208., 811012., 823240., 836080., 848320.,
      763180., 775432., 788248., 800512., 813364., 825640., 838528., 850816.,
      765340., 777640., 790504., 802816., 815716., 828040., 840976., 853312.,
      767500., 779848., 792760., 805120., 818068., 830440., 843424., 855808.,
      769660., 782056., 795016., 807424., 820420., 832840., 845872., 858304.,
      771820., 784264., 797272., 809728., 822772., 835240., 848320., 860800.,
      773980., 786472., 799528., 812032., 825124., 837640., 850768., 863296.,
      791260., 804136., 817576., 830464., 843940., 856840., 870352., 883264.,
      793420., 806344., 819832., 832768., 846292., 859240., 872800., 885760.,
      795580., 808552., 822088., 835072., 848644., 861640., 875248., 888256.,
      797740., 810760., 824344., 837376., 850996., 864040., 877696., 890752.,
      799900., 812968., 826600., 839680., 853348., 866440., 880144., 893248.,
      802060., 815176., 828856., 841984., 855700., 868840., 882592., 895744.,
      804220., 817384., 831112., 844288., 858052., 871240., 885040., 898240.,
      821500., 835048., 849160., 862720., 876868., 890440., 904624., 918208.,
      823660., 837256., 851416., 865024., 879220., 892840., 907072., 920704.,
      825820., 839464., 853672., 867328., 881572., 895240., 909520., 923200.,
      827980., 841672., 855928., 869632., 883924., 897640., 911968., 925696.,
      647868., 659560., 671816., 683520., 695812., 707528., 719856., 731584.,
      650028., 661768., 674072., 685824., 698164., 709928., 722304., 734080.,
      652188., 663976., 676328., 688128., 700516., 712328., 724752., 736576.,
      503580., 513704., 524392., 534528., 545252., 555400., 566160., 576320.,
      505740., 515912., 526648., 536832., 547604., 557800., 568608., 578816.,
      507900., 518120., 528904., 539136., 549956., 560200., 571056., 581312.,
      510060., 520328., 531160., 541440., 552308., 562600., 573504., 583808.,
      512220., 522536., 533416., 543744., 554660., 565000., 575952., 586304.,
      514380., 524744., 535672., 546048., 557012., 567400., 578400., 588800.,
      516540., 526952., 537928., 548352., 559364., 569800., 580848., 591296.,
      533820., 544616., 555976., 566784., 578180., 589000., 600432., 611264.,
      535980., 546824., 558232., 569088., 580532., 591400., 602880., 613760.,
      538140., 549032., 560488., 571392., 582884., 593800., 605328., 616256.,
      540300., 551240., 562744., 573696., 585236., 596200., 607776., 618752.,
      542460., 553448., 565000., 576000., 587588., 598600., 610224., 621248.,
      544620., 555656., 567256., 578304., 589940., 601000., 612672., 623744.,
      546780., 557864., 569512., 580608., 592292., 603400., 615120., 626240.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 2;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, SAME3x14x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      5541795., 5554278., 5566761., 5579244., 5603094., 5615604., 5628114.,
      5640624., 5664609., 5677146., 5689683., 5702220., 5726340., 5738904.,
      5751468., 5764032., 5586831., 5599422., 5612013., 5624604., 5648562.,
      5661180., 5673798., 5686416., 5710509., 5723154., 5735799., 5748444.,
      5772672., 5785344., 5798016., 5810688., 7261284., 7277928., 7294572.,
      7311216., 7342728., 7359408., 7376088., 7392768., 7424460., 7441176.,
      7457892., 7474608., 7506480., 7523232., 7539984., 7556736., 7320180.,
      7336968., 7353756., 7370544., 7402200., 7419024., 7435848., 7452672.,
      7484508., 7501368., 7518228., 7535088., 7567104., 7584000., 7600896.,
      7617792., 5342067., 5354550., 5367033., 5379516., 5402934., 5415444.,
      5427954., 5440464., 5464017., 5476554., 5489091., 5501628., 5525316.,
      5537880., 5550444., 5563008., 5385375., 5397966., 5410557., 5423148.,
      5446674., 5459292., 5471910., 5484528., 5508189., 5520834., 5533479.,
      5546124., 5569920., 5582592., 5595264., 5607936., 5428683., 5441382.,
      5454081., 5466780., 5490414., 5503140., 5515866., 5528592., 5552361.,
      5565114., 5577867., 5590620., 5614524., 5627304., 5640084., 5652864.,
      6172299., 6186294., 6200289., 6214284., 6239646., 6253668., 6267690.,
      6281712., 6307209., 6321258., 6335307., 6349356., 6374988., 6389064.,
      6403140., 6417216., 6217335., 6231438., 6245541., 6259644., 6285114.,
      6299244., 6313374., 6327504., 6353109., 6367266., 6381423., 6395580.,
      6421320., 6435504., 6449688., 6463872., 8085828., 8104488., 8123148.,
      8141808., 8175336., 8194032., 8212728., 8231424., 8265132., 8283864.,
      8302596., 8321328., 8355216., 8373984., 8392752., 8411520., 8144724.,
      8163528., 8182332., 8201136., 8234808., 8253648., 8272488., 8291328.,
      8325180., 8344056., 8362932., 8381808., 8415840., 8434752., 8453664.,
      8472576., 5948379., 5962374., 5976369., 5990364., 6015294., 6029316.,
      6043338., 6057360., 6082425., 6096474., 6110523., 6124572., 6149772.,
      6163848., 6177924., 6192000., 5991687., 6005790., 6019893., 6033996.,
      6059034., 6073164., 6087294., 6101424., 6126597., 6140754., 6154911.,
      6169068., 6194376., 6208560., 6222744., 6236928., 6034995., 6049206.,
      6063417., 6077628., 6102774., 6117012., 6131250., 6145488., 6170769.,
      6185034., 6199299., 6213564., 6238980., 6253272., 6267564., 6281856.,
      6993668., 7010312., 7026956., 7043600., 7074248., 7090928., 7107608.,
      7124288., 7155116., 7171832., 7188548., 7205264., 7236272., 7253024.,
      7269776., 7286528., 7049108., 7065896., 7082684., 7099472., 7130264.,
      7147088., 7163912., 7180736., 7211708., 7228568., 7245428., 7262288.,
      7293440., 7310336., 7327232., 7344128., 8569136., 8590304., 8611472.,
      8632640., 8672096., 8693312., 8714528., 8735744., 8775440., 8796704.,
      8817968., 8839232., 8879168., 8900480., 8921792., 8943104., 8641520.,
      8662880., 8684240., 8705600., 8745248., 8766656., 8788064., 8809472.,
      8849360., 8870816., 8892272., 8913728., 8953856., 8975360., 8996864.,
      9018368., 6727364., 6744008., 6760652., 6777296., 6807368., 6824048.,
      6840728., 6857408., 6887660., 6904376., 6921092., 6937808., 6968240.,
      6984992., 7001744., 7018496., 6780500., 6797288., 6814076., 6830864.,
      6861080., 6877904., 6894728., 6911552., 6941948., 6958808., 6975668.,
      6992528., 7023104., 7040000., 7056896., 7073792., 5832164., 5847048.,
      5861932., 5876816., 5905128., 5920048., 5934968., 5949888., 5978380.,
      5993336., 6008292., 6023248., 6051920., 6066912., 6081904., 6096896.,
      6062820., 6078408., 6093996., 6109584., 6139176., 6154800., 6170424.,
      6186048., 6215820., 6231480., 6247140., 6262800., 6292752., 6308448.,
      6324144., 6339840., 6118260., 6133992., 6149724., 6165456., 6195192.,
      6210960., 6226728., 6242496., 6272412., 6288216., 6304020., 6319824.,
      6349920., 6365760., 6381600., 6397440., 7924656., 7945440., 7966224.,
      7987008., 8026080., 8046912., 8067744., 8088576., 8127888., 8148768.,
      8169648., 8190528., 8230080., 8251008., 8271936., 8292864., 7997040.,
      8018016., 8038992., 8059968., 8099232., 8120256., 8141280., 8162304.,
      8201808., 8222880., 8243952., 8265024., 8304768., 8325888., 8347008.,
      8368128., 5813412., 5829000., 5844588., 5860176., 5889192., 5904816.,
      5920440., 5936064., 5965260., 5980920., 5996580., 6012240., 6041616.,
      6057312., 6073008., 6088704., 5866548., 5882280., 5898012., 5913744.,
      5942904., 5958672., 5974440., 5990208., 6019548., 6035352., 6051156.,
      6066960., 6096480., 6112320., 6128160., 6144000., 5919684., 5935560.,
      5951436., 5967312., 5996616., 6012528., 6028440., 6044352., 6073836.,
      6089784., 6105732., 6121680., 6151344., 6167328., 6183312., 6199296.,
      4742883., 4755366., 4767849., 4780332., 4802454., 4814964., 4827474.,
      4839984., 4862241., 4874778., 4887315., 4899852., 4922244., 4934808.,
      4947372., 4959936., 4781007., 4793598., 4806189., 4818780., 4841010.,
      4853628., 4866246., 4878864., 4901229., 4913874., 4926519., 4939164.,
      4961664., 4974336., 4987008., 4999680., 6196068., 6212712., 6229356.,
      6246000., 6275208., 6291888., 6308568., 6325248., 6354636., 6371352.,
      6388068., 6404784., 6434352., 6451104., 6467856., 6484608., 6245748.,
      6262536., 6279324., 6296112., 6325464., 6342288., 6359112., 6375936.,
      6405468., 6422328., 6439188., 6456048., 6485760., 6502656., 6519552.,
      6536448., 4543155., 4555638., 4568121., 4580604., 4602294., 4614804.,
      4627314., 4639824., 4661649., 4674186., 4686723., 4699260., 4721220.,
      4733784., 4746348., 4758912., 4579551., 4592142., 4604733., 4617324.,
      4639122., 4651740., 4664358., 4676976., 4698909., 4711554., 4724199.,
      4736844., 4758912., 4771584., 4784256., 4796928., 4615947., 4628646.,
      4641345., 4654044., 4675950., 4688676., 4701402., 4714128., 4736169.,
      4748922., 4761675., 4774428., 4796604., 4809384., 4822164., 4834944.,
      5276619., 5290614., 5304609., 5318604., 5342238., 5356260., 5370282.,
      5384304., 5408073., 5422122., 5436171., 5450220., 5474124., 5488200.,
      5502276., 5516352., 5314743., 5328846., 5342949., 5357052., 5380794.,
      5394924., 5409054., 5423184., 5447061., 5461218., 5475375., 5489532.,
      5513544., 5527728., 5541912., 5556096., 6891588., 6910248., 6928908.,
      6947568., 6978792., 6997488., 7016184., 7034880., 7066284., 7085016.,
      7103748., 7122480., 7154064., 7172832., 7191600., 7210368., 6941268.,
      6960072., 6978876., 6997680., 7029048., 7047888., 7066728., 7085568.,
      7117116., 7135992., 7154868., 7173744., 7205472., 7224384., 7243296.,
      7262208., 5052699., 5066694., 5080689., 5094684., 5117886., 5131908.,
      5145930., 5159952., 5183289., 5197338., 5211387., 5225436., 5248908.,
      5262984., 5277060., 5291136., 5089095., 5103198., 5117301., 5131404.,
      5154714., 5168844., 5182974., 5197104., 5220549., 5234706., 5248863.,
      5263020., 5286600., 5300784., 5314968., 5329152., 5125491., 5139702.,
      5153913., 5168124., 5191542., 5205780., 5220018., 5234256., 5257809.,
      5272074., 5286339., 5300604., 5324292., 5338584., 5352876., 5367168.,
      4562099., 4574534., 4586969., 4599404., 4621478., 4633940., 4646402.,
      4658864., 4681073., 4693562., 4706051., 4718540., 4740884., 4753400.,
      4765916., 4778432., 4600223., 4612766., 4625309., 4637852., 4660034.,
      4672604., 4685174., 4697744., 4720061., 4732658., 4745255., 4757852.,
      4780304., 4792928., 4805552., 4818176., 5435684., 5451240., 5466796.,
      5482352., 5510472., 5526064., 5541656., 5557248., 5585548., 5601176.,
      5616804., 5632432., 5660912., 5676576., 5692240., 5707904., 5485364.,
      5501064., 5516764., 5532464., 5560728., 5576464., 5592200., 5607936.,
      5636380., 5652152., 5667924., 5683696., 5712320., 5728128., 5743936.,
      5759744., 4363139., 4375574., 4388009., 4400444., 4422086., 4434548.,
      4447010., 4459472., 4481249., 4493738., 4506227., 4518716., 4540628.,
      4553144., 4565660., 4578176., 4399535., 4412078., 4424621., 4437164.,
      4458914., 4471484., 4484054., 4496624., 4518509., 4531106., 4543703.,
      4556300., 4578320., 4590944., 4603568., 4616192., 3565531., 3576134.,
      3586737., 3597340., 3617150., 3627780., 3638410., 3649040., 3668985.,
      3679642., 3690299., 3700956., 3721036., 3731720., 3742404., 3753088.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::SAME;
  const DataType max_input_val = 1024.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}
TYPED_TEST(FilterBackpropWindow7Stride4, VALID3x14x14x4x4) {
  using DataType = typename TestFixture::DataType;
  const std::vector<DataType> exp_out = {
      1390220., 1401080., 1411940., 1422800., 1434776., 1445648., 1456520.,
      1467392., 1479428., 1490312., 1501196., 1512080., 1524176., 1535072.,
      1545968., 1556864., 1394492., 1405400., 1416308., 1427216., 1439240.,
      1450160., 1461080., 1472000., 1484084., 1495016., 1505948., 1516880.,
      1529024., 1539968., 1550912., 1561856., 1398764., 1409720., 1420676.,
      1431632., 1443704., 1454672., 1465640., 1476608., 1488740., 1499720.,
      1510700., 1521680., 1533872., 1544864., 1555856., 1566848., 1403036.,
      1414040., 1425044., 1436048., 1448168., 1459184., 1470200., 1481216.,
      1493396., 1504424., 1515452., 1526480., 1538720., 1549760., 1560800.,
      1571840., 1407308., 1418360., 1429412., 1440464., 1452632., 1463696.,
      1474760., 1485824., 1498052., 1509128., 1520204., 1531280., 1543568.,
      1554656., 1565744., 1576832., 1411580., 1422680., 1433780., 1444880.,
      1457096., 1468208., 1479320., 1490432., 1502708., 1513832., 1524956.,
      1536080., 1548416., 1559552., 1570688., 1581824., 1415852., 1427000.,
      1438148., 1449296., 1461560., 1472720., 1483880., 1495040., 1507364.,
      1518536., 1529708., 1540880., 1553264., 1564448., 1575632., 1586816.,
      1450028., 1461560., 1473092., 1484624., 1497272., 1508816., 1520360.,
      1531904., 1544612., 1556168., 1567724., 1579280., 1592048., 1603616.,
      1615184., 1626752., 1454300., 1465880., 1477460., 1489040., 1501736.,
      1513328., 1524920., 1536512., 1549268., 1560872., 1572476., 1584080.,
      1596896., 1608512., 1620128., 1631744., 1458572., 1470200., 1481828.,
      1493456., 1506200., 1517840., 1529480., 1541120., 1553924., 1565576.,
      1577228., 1588880., 1601744., 1613408., 1625072., 1636736., 1462844.,
      1474520., 1486196., 1497872., 1510664., 1522352., 1534040., 1545728.,
      1558580., 1570280., 1581980., 1593680., 1606592., 1618304., 1630016.,
      1641728., 1467116., 1478840., 1490564., 1502288., 1515128., 1526864.,
      1538600., 1550336., 1563236., 1574984., 1586732., 1598480., 1611440.,
      1623200., 1634960., 1646720., 1471388., 1483160., 1494932., 1506704.,
      1519592., 1531376., 1543160., 1554944., 1567892., 1579688., 1591484.,
      1603280., 1616288., 1628096., 1639904., 1651712., 1475660., 1487480.,
      1499300., 1511120., 1524056., 1535888., 1547720., 1559552., 1572548.,
      1584392., 1596236., 1608080., 1621136., 1632992., 1644848., 1656704.,
      1509836., 1522040., 1534244., 1546448., 1559768., 1571984., 1584200.,
      1596416., 1609796., 1622024., 1634252., 1646480., 1659920., 1672160.,
      1684400., 1696640., 1514108., 1526360., 1538612., 1550864., 1564232.,
      1576496., 1588760., 1601024., 1614452., 1626728., 1639004., 1651280.,
      1664768., 1677056., 1689344., 1701632., 1518380., 1530680., 1542980.,
      1555280., 1568696., 1581008., 1593320., 1605632., 1619108., 1631432.,
      1643756., 1656080., 1669616., 1681952., 1694288., 1706624., 1522652.,
      1535000., 1547348., 1559696., 1573160., 1585520., 1597880., 1610240.,
      1623764., 1636136., 1648508., 1660880., 1674464., 1686848., 1699232.,
      1711616., 1526924., 1539320., 1551716., 1564112., 1577624., 1590032.,
      1602440., 1614848., 1628420., 1640840., 1653260., 1665680., 1679312.,
      1691744., 1704176., 1716608., 1531196., 1543640., 1556084., 1568528.,
      1582088., 1594544., 1607000., 1619456., 1633076., 1645544., 1658012.,
      1670480., 1684160., 1696640., 1709120., 1721600., 1535468., 1547960.,
      1560452., 1572944., 1586552., 1599056., 1611560., 1624064., 1637732.,
      1650248., 1662764., 1675280., 1689008., 1701536., 1714064., 1726592.,
      1569644., 1582520., 1595396., 1608272., 1622264., 1635152., 1648040.,
      1660928., 1674980., 1687880., 1700780., 1713680., 1727792., 1740704.,
      1753616., 1766528., 1573916., 1586840., 1599764., 1612688., 1626728.,
      1639664., 1652600., 1665536., 1679636., 1692584., 1705532., 1718480.,
      1732640., 1745600., 1758560., 1771520., 1578188., 1591160., 1604132.,
      1617104., 1631192., 1644176., 1657160., 1670144., 1684292., 1697288.,
      1710284., 1723280., 1737488., 1750496., 1763504., 1776512., 1582460.,
      1595480., 1608500., 1621520., 1635656., 1648688., 1661720., 1674752.,
      1688948., 1701992., 1715036., 1728080., 1742336., 1755392., 1768448.,
      1781504., 1586732., 1599800., 1612868., 1625936., 1640120., 1653200.,
      1666280., 1679360., 1693604., 1706696., 1719788., 1732880., 1747184.,
      1760288., 1773392., 1786496., 1591004., 1604120., 1617236., 1630352.,
      1644584., 1657712., 1670840., 1683968., 1698260., 1711400., 1724540.,
      1737680., 1752032., 1765184., 1778336., 1791488., 1595276., 1608440.,
      1621604., 1634768., 1649048., 1662224., 1675400., 1688576., 1702916.,
      1716104., 1729292., 1742480., 1756880., 1770080., 1783280., 1796480.,
      1629452., 1643000., 1656548., 1670096., 1684760., 1698320., 1711880.,
      1725440., 1740164., 1753736., 1767308., 1780880., 1795664., 1809248.,
      1822832., 1836416., 1633724., 1647320., 1660916., 1674512., 1689224.,
      1702832., 1716440., 1730048., 1744820., 1758440., 1772060., 1785680.,
      1800512., 1814144., 1827776., 1841408., 1637996., 1651640., 1665284.,
      1678928., 1693688., 1707344., 1721000., 1734656., 1749476., 1763144.,
      1776812., 1790480., 1805360., 1819040., 1832720., 1846400., 1642268.,
      1655960., 1669652., 1683344., 1698152., 1711856., 1725560., 1739264.,
      1754132., 1767848., 1781564., 1795280., 1810208., 1823936., 1837664.,
      1851392., 1284044., 1295736., 1307428., 1319120., 1331928., 1343632.,
      1355336., 1367040., 1379908., 1391624., 1403340., 1415056., 1427984.,
      1439712., 1451440., 1463168., 1288316., 1300056., 1311796., 1323536.,
      1336392., 1348144., 1359896., 1371648., 1384564., 1396328., 1408092.,
      1419856., 1432832., 1444608., 1456384., 1468160., 1292588., 1304376.,
      1316164., 1327952., 1340856., 1352656., 1364456., 1376256., 1389220.,
      1401032., 1412844., 1424656., 1437680., 1449504., 1461328., 1473152.,
      997036.,  1007160., 1017284., 1027408., 1038648., 1048784., 1058920.,
      1069056., 1080356., 1090504., 1100652., 1110800., 1122160., 1132320.,
      1142480., 1152640., 1001308., 1011480., 1021652., 1031824., 1043112.,
      1053296., 1063480., 1073664., 1085012., 1095208., 1105404., 1115600.,
      1127008., 1137216., 1147424., 1157632., 1005580., 1015800., 1026020.,
      1036240., 1047576., 1057808., 1068040., 1078272., 1089668., 1099912.,
      1110156., 1120400., 1131856., 1142112., 1152368., 1162624., 1009852.,
      1020120., 1030388., 1040656., 1052040., 1062320., 1072600., 1082880.,
      1094324., 1104616., 1114908., 1125200., 1136704., 1147008., 1157312.,
      1167616., 1014124., 1024440., 1034756., 1045072., 1056504., 1066832.,
      1077160., 1087488., 1098980., 1109320., 1119660., 1130000., 1141552.,
      1151904., 1162256., 1172608., 1018396., 1028760., 1039124., 1049488.,
      1060968., 1071344., 1081720., 1092096., 1103636., 1114024., 1124412.,
      1134800., 1146400., 1156800., 1167200., 1177600., 1022668., 1033080.,
      1043492., 1053904., 1065432., 1075856., 1086280., 1096704., 1108292.,
      1118728., 1129164., 1139600., 1151248., 1161696., 1172144., 1182592.,
      1056844., 1067640., 1078436., 1089232., 1101144., 1111952., 1122760.,
      1133568., 1145540., 1156360., 1167180., 1178000., 1190032., 1200864.,
      1211696., 1222528., 1061116., 1071960., 1082804., 1093648., 1105608.,
      1116464., 1127320., 1138176., 1150196., 1161064., 1171932., 1182800.,
      1194880., 1205760., 1216640., 1227520., 1065388., 1076280., 1087172.,
      1098064., 1110072., 1120976., 1131880., 1142784., 1154852., 1165768.,
      1176684., 1187600., 1199728., 1210656., 1221584., 1232512., 1069660.,
      1080600., 1091540., 1102480., 1114536., 1125488., 1136440., 1147392.,
      1159508., 1170472., 1181436., 1192400., 1204576., 1215552., 1226528.,
      1237504., 1073932., 1084920., 1095908., 1106896., 1119000., 1130000.,
      1141000., 1152000., 1164164., 1175176., 1186188., 1197200., 1209424.,
      1220448., 1231472., 1242496., 1078204., 1089240., 1100276., 1111312.,
      1123464., 1134512., 1145560., 1156608., 1168820., 1179880., 1190940.,
      1202000., 1214272., 1225344., 1236416., 1247488., 1082476., 1093560.,
      1104644., 1115728., 1127928., 1139024., 1150120., 1161216., 1173476.,
      1184584., 1195692., 1206800., 1219120., 1230240., 1241360., 1252480.};
  const std::array<int, 4> in_shape = {{3, 14, 14, 4}};
  const int multiplier = 4;
  const auto padding = sycldnn::PaddingMode::VALID;
  const DataType max_input_val = 2048.0;
  this->run_filter_backprop_test(exp_out, in_shape, multiplier, padding,
                                 max_input_val);
}